Resolve

Trait Resolve 

Source
pub trait Resolve {
    // Required methods
    fn resolve_flags(
        &self,
        r: PlainRef,
        flags: ParseFlags,
        depth: usize,
    ) -> Result<Primitive>;
    fn get<T: Object + DataSize>(&self, r: Ref<T>) -> Result<RcRef<T>>;
    fn options(&self) -> &ParseOptions;
    fn stream_data(
        &self,
        id: PlainRef,
        range: Range<usize>,
    ) -> Result<Arc<[u8]>>;
    fn get_data_or_decode(
        &self,
        id: PlainRef,
        range: Range<usize>,
        filters: &[StreamFilter],
    ) -> Result<Arc<[u8]>>;

    // Provided method
    fn resolve(&self, r: PlainRef) -> Result<Primitive> { ... }
}

Required Methods§

Source

fn resolve_flags( &self, r: PlainRef, flags: ParseFlags, depth: usize, ) -> Result<Primitive>

Source

fn get<T: Object + DataSize>(&self, r: Ref<T>) -> Result<RcRef<T>>

Source

fn options(&self) -> &ParseOptions

Source

fn stream_data(&self, id: PlainRef, range: Range<usize>) -> Result<Arc<[u8]>>

Source

fn get_data_or_decode( &self, id: PlainRef, range: Range<usize>, filters: &[StreamFilter], ) -> Result<Arc<[u8]>>

Provided Methods§

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 Resolve for NoResolve

Source§

impl<'a, R: Resolve, U> Resolve for Importer<'a, R, U>