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>;
fn replace_extra<E: 'static + Clone>(
self,
extra: E,
) -> (Self::Extra, Self::WithExtra<E>);
fn parse_inline_extra<E: 'static + Clone, T: ParseInline<Self::WithExtra<E>>>(
&mut self,
extra: E,
) -> Result<T>;
// Provided methods
fn resolve(&self) -> Arc<dyn Resolve> { ... }
fn resolve_ref(&self) -> &dyn Resolve { ... }
fn extension<T: Any>(&self) -> Result<&T> { ... }
fn with_extra<E: 'static + Clone>(self, extra: E) -> Self::WithExtra<E> { ... }
fn parse_extra<E: 'static + Clone, T: Parse<Self::WithExtra<E>>>(
self,
extra: E,
) -> Result<T> { ... }
}Required Associated Types§
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>
fn replace_extra<E: 'static + Clone>( self, extra: E, ) -> (Self::Extra, Self::WithExtra<E>)
fn parse_inline_extra<E: 'static + Clone, T: ParseInline<Self::WithExtra<E>>>( &mut self, extra: E, ) -> Result<T>
Provided Methods§
fn resolve(&self) -> Arc<dyn Resolve>
fn resolve_ref(&self) -> &dyn Resolve
fn extension<T: Any>(&self) -> Result<&T>
fn with_extra<E: 'static + Clone>(self, extra: E) -> Self::WithExtra<E>
fn parse_extra<E: 'static + Clone, T: Parse<Self::WithExtra<E>>>( self, extra: E, ) -> 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.