Skip to main content

auto_impl

Macro auto_impl 

Source
macro_rules! auto_impl {
    ($name:ident : $($trait:ident $(=> $target:ty)? $(= $val:expr)?);+ $(;)?) => { ... };
    ($name:ident => $field:tt : $($trait:ident $(=> $target:ty)? $(= $val:expr)?);+ $(;)?) => { ... };
    (@dispatch $name:ident, $field:tt, Default, $val:expr) => { ... };
    (@dispatch $name:ident, $field:tt, $trait:ident) => { ... };
    (@dispatch $name:ident, $field:tt, $trait:ident, $target:ty) => { ... };
    (@impl $name:ident, $field:tt, Deref, $target:ty) => { ... };
    (@impl $name:ident, $field:tt, DerefMut, $target:ty) => { ... };
    (@impl $name:ident, $field:tt, From, $inner:ty) => { ... };
    (@impl $name:ident, $field:tt, Into, $inner:ty) => { ... };
    (@impl $name:ident, $field:tt, Display, $inner:ty) => { ... };
    (@impl $name:ident, $field:tt, FromStr, $inner:ty) => { ... };
    (@impl $name:ident, $field:tt, IntoIterator, $inner:ty) => { ... };
    (@impl $name:ident, $field:tt, FromIterator, $inner:ty) => { ... };
}
Expand description
use cba::auto_impl;

#[derive(Debug)]
pub struct InputUI {};

#[derive(Debug)]
pub struct PromptOverlay(InputUI, usize);

auto_impl!(PromptOverlay => 0: Deref => InputUI; DerefMut);