[][src]Macro partial_ref::part

macro_rules! part {
    ($part:ident) => { ... };
    (pub $part:ident) => { ... };
    ($part:ident<> : $field:ty) => { ... };
    (pub $part:ident<> : $field:ty) => { ... };
    ($part:ident<$($lt:lifetime),*> : $field:ty) => { ... };
    (pub $part:ident<$($lt:lifetime),*> : $field:ty) => { ... };
    ($part:ident : $field:ty) => { ... };
    (pub $part:ident : $field:ty) => { ... };
    (@template $part:ident () ($($vis:tt)*) ($($part_type:tt)*)) => { ... };
    (@template $part:ident ($($lt:lifetime),*) ($($vis:tt)*) ($($part_type:tt)*) ($field:ty)) => { ... };
    (@spec_template $part:ident ($l:lifetime)) => { ... };
    (@spec_template $part:ident ($l1:lifetime, $l2:lifetime)) => { ... };
    (@spec_template $part:ident ($l1:lifetime, $l2:lifetime, $l3:lifetime)) => { ... };
    (@spec_template $part:ident ($($tt:tt)*)) => { ... };
}

Declares a [Part].

Defines an empty struct type and derives all necessary instances to use it as a marker type for parts.

This macro can define [AbstractPart]s using part!(PartName); or part!(pub PartName); and [Field] parts using part!(PartName: FieldType); or part!(pub PartName: FieldType);.