use crate::*; //#[cfg(feature = "dsl")] //#[macro_export] macro_rules! try_delegate { //($s:ident, $dsl:expr, $T:ty) => { //let value: Option<$T> = Dsl::take_from($s, $dsl)?; //if let Some(value) = value { //return Ok(Some(value.boxed())) //} //} //} //// Provides components to the view. //#[cfg(feature = "dsl")] //pub trait ViewContext<'state, E: Output + 'state>: //Namespace + Namespace + Namespace + Send + Sync //{ //fn get_content_sym <'source: 'state> (&'state self, iter: &mut TokenIter<'source>) //-> Perhaps>; //fn get_content_exp <'source: 'state> (&'state self, iter: &mut TokenIter<'source>) //-> Perhaps> //{ //try_delegate!(self, iter, When::>); //try_delegate!(self, iter, Either::, RenderBox<'state, E>>); //try_delegate!(self, iter, Align::>); //try_delegate!(self, iter, Bsp::, RenderBox<'state, E>>); //try_delegate!(self, iter, Fill::>); //try_delegate!(self, iter, Fixed::<_, RenderBox<'state, E>>); //try_delegate!(self, iter, Min::<_, RenderBox<'state, E>>); //try_delegate!(self, iter, Max::<_, RenderBox<'state, E>>); //try_delegate!(self, iter, Shrink::<_, RenderBox<'state, E>>); //try_delegate!(self, iter, Expand::<_, RenderBox<'state, E>>); //try_delegate!(self, iter, Push::<_, RenderBox<'state, E>>); //try_delegate!(self, iter, Pull::<_, RenderBox<'state, E>>); //try_delegate!(self, iter, Margin::<_, RenderBox<'state, E>>); //try_delegate!(self, iter, Padding::<_, RenderBox<'state, E>>); //Ok(None) //} //} //#[cfg(feature = "dsl")] //impl<'context, O: Output + 'context, T: ViewContext<'context, O>> Namespace for RenderBox<'context, O> { //fn take_from <'state, 'source: 'state> (state: &'state T, token: &mut TokenIter<'source>) //-> Perhaps> //{ //Ok(if let Some(content) = state.get_content_sym(token)? { //Some(content) //} else if let Some(content) = state.get_content_exp(token)? { //Some(content) //} else { //None //}) //} //}