PointInput

Trait PointInput 

Source
pub trait PointInput: ParseInput {
    type Extra: 'static + Clone;
    type WithExtra<E: 'static + Clone>: PointInput<Extra = E, WithExtra<Self::Extra> = Self>;

    // Required methods
    fn next_index(&mut self) -> usize;
    fn resolve_arc_ref(&self) -> &Arc<dyn Resolve>;
    fn extra(&self) -> &Self::Extra;
    fn map_extra<E: 'static + Clone>(
        self,
        f: impl FnOnce(&Self::Extra) -> &E,
    ) -> Self::WithExtra<E>;

    // Provided methods
    fn resolve(&self) -> Arc<dyn Resolve> { ... }
    fn resolve_ref(&self) -> &dyn Resolve { ... }
    fn extension<T: Any>(&self) -> Result<&T> { ... }
}

Required Associated Types§

Source

type Extra: 'static + Clone

Source

type WithExtra<E: 'static + Clone>: PointInput<Extra = E, WithExtra<Self::Extra> = Self>

Required Methods§

Source

fn next_index(&mut self) -> usize

Source

fn resolve_arc_ref(&self) -> &Arc<dyn Resolve>

Source

fn extra(&self) -> &Self::Extra

Source

fn map_extra<E: 'static + Clone>( self, f: impl FnOnce(&Self::Extra) -> &E, ) -> Self::WithExtra<E>

Provided Methods§

Source

fn resolve(&self) -> Arc<dyn Resolve>

Source

fn resolve_ref(&self) -> &dyn Resolve

Source

fn extension<T: Any>(&self) -> Result<&T>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, Extra: 'static + Clone> PointInput for Input<'a, Extra>

Source§

type Extra = Extra

Source§

type WithExtra<E: 'static + Clone> = Input<'a, E>