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);