[][src]Macro derive_less::derive_less

macro_rules! derive_less {
    {
        $(#[$smeta:meta])* $($svis:ident)? struct ... { $(#[$fmeta:meta])* $($fvis:ident)? ... }
        $(#[$emeta:meta])* $($evis:ident)? enum   ... { $(#[$vmeta:meta])*                 ... }
        $($rest:tt)*
    } => { ... };
    {
        $(#[$emeta:meta])* $($evis:ident)? enum   ... { $(#[$vmeta:meta])*                 ... }
        $(#[$smeta:meta])* $($svis:ident)? struct ... { $(#[$fmeta:meta])* $($fvis:ident)? ... }
        $($rest:tt)*
    } => { ... };
    {
        $(#[$smeta:meta])* $($svis:ident)? struct ... { $(#[$fmeta:meta])* $($fvis:ident)? ... }
        $($rest:tt)*
    } => { ... };
    {
        $(#[$emeta:meta])* $($evis:ident)? enum   ... { $(#[$vmeta:meta])*                 ... }
        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) ($($fvis:ident)?)
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)

        $(#[$current_smeta:meta])*
        struct

        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) ($($fvis:ident)?)
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)

        ($first:meta $($apply:meta)*)
        $(#[$current_smeta:meta])*
        struct $sname:ident $(< $($generic:tt),+ $(,)? >)? {
            $(
                $(#[$current_fmeta:meta])*
                $fname:ident : $fty:ty
            ),+ $(,)?
        }

        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) (  $fvis:ident  )
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)

        ()
        $(#[$current_smeta:meta])*
        struct $sname:ident $(< $($generic:tt),+ $(,)? >)? {
            $(
                $(#[$current_fmeta:meta])*
                $fname:ident : $fty:ty
            ),+ $(,)?
        }

        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) (               )
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)

        ()
        $(#[$current_smeta:meta])*
        struct $sname:ident $(< $($generic:tt),+ $(,)? >)? {
            $(
                $(#[$current_fmeta:meta])*
                $fname:ident : $fty:ty
            ),+ $(,)?
        }

        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) ($($fvis:ident)?)
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)

        ($first:meta $($apply:meta)*)
        $(#[$current_smeta:meta])*
        struct $sname:ident $(< $($generic:tt),+ $(,)? >)? $((
            $(
                $(#[$current_fmeta:meta])*
                $fty:ty
            ),+ $(,)?
        ))?;

        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) (  $fvis:ident  )
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)

        ()
        $(#[$current_smeta:meta])*
        struct $sname:ident $(< $($generic:tt),+ $(,)? >)? $((
            $(
                $(#[$current_fmeta:meta])*
                $fty:ty
            ),+ $(,)?
        ))?;

        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) (               )
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)

        ()
        $(#[$current_smeta:meta])*
        struct $sname:ident $(< $($generic:tt),+ $(,)? >)? $((
            $(
                $(#[$current_fmeta:meta])*
                $fty:ty
            ),+ $(,)?
        ))?;

        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) ($($fvis:ident)?)
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)

        $(#[$current_emeta:meta])*
        enum

        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) ($($fvis:ident)?)
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)

        ($first:meta $($apply:meta)*)
        $(#[$current_emeta:meta])*
        enum $ename:ident $(< $($generic:tt),+ $(,)? >)? {
            $(
                $(#[$current_vmeta:meta])*
                $vname:ident
                $(( $($vty:ty),+ $(,)? ))?
                $({ $($fname:ident : $fty:ty),+ $(,)? })?
            ),+ $(,)?
        }

        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) ($($fvis:ident)?)
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)

        ()
        $(#[$current_emeta:meta])*
        enum $ename:ident $(< $($generic:tt),+ $(,)? >)? {
            $(
                $(#[$current_vmeta:meta])*
                $vname:ident
                $(( $($vty:ty),+ $(,)? ))?
                $({ $($fname:ident : $fty:ty),+ $(,)? })?
            ),+ $(,)?
        }

        $($rest:tt)*
    } => { ... };
    {
        ($($smeta:meta)*) ($($svis:ident)?)
        ($($fmeta:meta)*) ($($fvis:ident)?)
        ($($emeta:meta)*) ($($evis:ident)?)
        ($($vmeta:meta)*)
//         $($rest:tt)*
    } => { ... };
}