pub trait Framework<ProtoModel, Model>: Send + Syncwhere
    ProtoModel: Debug,{
    // Required methods
    fn proto_model_for_read(
        &self,
        reader: &mut dyn Read
    ) -> Result<ProtoModel, Error>;
    fn model_for_proto_model_with_symbols(
        &self,
        proto: &ProtoModel,
        symbols: &SymbolTable
    ) -> Result<Model, Error>;

    // Provided methods
    fn model_for_proto_model(&self, proto: &ProtoModel) -> Result<Model, Error> { ... }
    fn proto_model_for_path(
        &self,
        p: impl AsRef<Path>
    ) -> Result<ProtoModel, Error> { ... }
    fn model_for_read(&self, r: &mut dyn Read) -> Result<Model, Error> { ... }
    fn model_for_path(&self, p: impl AsRef<Path>) -> Result<Model, Error> { ... }
}
Expand description

A Framework that translate its model to tract core model.

The ProtoModel is the parsed representation of the imported model. It does not have to be Protobuf based.

Required Methods§

fn proto_model_for_read( &self, reader: &mut dyn Read ) -> Result<ProtoModel, Error>

Parse a proto model from a reader.

fn model_for_proto_model_with_symbols( &self, proto: &ProtoModel, symbols: &SymbolTable ) -> Result<Model, Error>

Translate a proto model into a model, with some symbols already listed.

Provided Methods§

fn model_for_proto_model(&self, proto: &ProtoModel) -> Result<Model, Error>

Translate a proto model into a model.

fn proto_model_for_path(&self, p: impl AsRef<Path>) -> Result<ProtoModel, Error>

Read a proto model from a filename.

fn model_for_read(&self, r: &mut dyn Read) -> Result<Model, Error>

Read a model from a reader

fn model_for_path(&self, p: impl AsRef<Path>) -> Result<Model, Error>

Build a model from a filename.

Implementors§

§

impl Framework<ProtoModel, Graph<TypedFact, Box<dyn TypedOp + 'static, Global>>> for Nnef