#model #field #sub #marco #generate #proc #mapping

macro sub-model

a proc marco for easy generate sub models

3 unstable releases

0.2.0 Aug 11, 2022
0.1.1 Apr 13, 2022
0.1.0 Apr 13, 2022

#1527 in Procedural macros

MIT license

56KB
1.5K SLoC

SubModel

The project is not completed

progress

  • load necessary SubModel information from marco input
  • generate codes
  • field type mapping
  • extra sub model field
  • support Generic
  • condition field type mapping
  • a better way to add extra proc_marco onto field on SubModels

usage

using all or none define sub model type

  • all default all of the field is a part of the sub model
  • none default is an empty struct

in the all or none

  • if only need define the name of sub model, can use like that
#[sub_model(all("foo"),none("foo2"))]
  • or else using full pattern name = "foo"

there a a set of information can be define

  • vis the visibility of the sub model, default pub
  • name the name of the sub model
  • extra_field the extra field of the sub model, can use like that
    • the ty define the type of extra field
    • the from define how to create the value in this field, it accept a path to a function without any params
#[all(
    name = "foo",
    extra_field(
        foo(ty = "bool", from = "Default::default")
))]

the example add a new field named foo with type bool,create by Default::default to sub model foo

  • extra other marco that add to this new sub model, for example
#[all(
    name = "foo",
    extra(
        derive(Debug, Serialize, Deserialize)
))]

the example make the sub model foo can serialize and deserialize

Dependencies

~2MB
~44K SLoC