Trait reproto_backend::package_processor::PackageProcessor [] [src]

pub trait PackageProcessor<'el, F: 'static, N: 'static> where
    Self: 'el + Sized,
    F: Flavor<Name = N, Package = RpPackage>,
    N: Name<F>, 
{ type Out: Default + IntoBytes<Self>; type DeclIter: Iterator<Item = &'el RpDecl<F>>; fn ext(&self) -> &str;
fn decl_iter(&self) -> Self::DeclIter;
fn handle(&self) -> &'el Handle; fn default_process(
        &self,
        _: &mut Self::Out,
        name: &'el F::Name
    ) -> Result<()> { ... }
fn process_interface(
        &self,
        out: &mut Self::Out,
        body: &'el RpInterfaceBody<F>
    ) -> Result<()> { ... }
fn process_type(
        &self,
        out: &mut Self::Out,
        body: &'el RpTypeBody<F>
    ) -> Result<()> { ... }
fn process_tuple(
        &self,
        out: &mut Self::Out,
        body: &'el RpTupleBody<F>
    ) -> Result<()> { ... }
fn process_enum(
        &self,
        out: &mut Self::Out,
        body: &'el RpEnumBody<F>
    ) -> Result<()> { ... }
fn process_service(
        &self,
        out: &mut Self::Out,
        body: &'el RpServiceBody<F>
    ) -> Result<()> { ... }
fn populate_files(&self) -> Result<BTreeMap<F::Package, Self::Out>> { ... }
fn do_populate_files<C>(
        &self,
        callback: C
    ) -> Result<BTreeMap<F::Package, Self::Out>>
    where
        C: FnMut(&'el RpDecl<F>) -> Result<()>
, { ... }
fn resolve_full_path(&self, package: &RpPackage) -> Result<RelativePathBuf> { ... }
fn setup_module_path(&self, package: &RpPackage) -> Result<RelativePathBuf> { ... }
fn write_files(
        &'el self,
        files: BTreeMap<F::Package, Self::Out>
    ) -> Result<()> { ... } }

Associated Types

Required Methods

Access the extension for processing.

Iterate over all existing declarations.

Provided Methods

Implementors