MovePackageExt

Trait MovePackageExt 

Source
pub trait MovePackageExt: Sized + Sealed {
    // Required methods
    fn new_initial<'p>(
        modules: &[CompiledModule],
        protocol_config: &ProtocolConfig,
        transitive_dependencies: impl IntoIterator<Item = &'p MovePackage>,
    ) -> Result<MovePackage, ExecutionError>;
    fn new_upgraded<'p>(
        &self,
        storage_id: ObjectID,
        modules: &[CompiledModule],
        protocol_config: &ProtocolConfig,
        transitive_dependencies: impl IntoIterator<Item = &'p MovePackage>,
    ) -> Result<MovePackage, ExecutionError>;
    fn new_system(
        version: SequenceNumber,
        modules: &[CompiledModule],
        dependencies: impl IntoIterator<Item = ObjectID>,
    ) -> MovePackage;
    fn from_module_iter_with_type_origin_table<'p>(
        storage_id: ObjectID,
        self_id: ObjectID,
        version: SequenceNumber,
        modules: &[CompiledModule],
        protocol_config: &ProtocolConfig,
        type_origin_table: Vec<TypeOrigin>,
        transitive_dependencies: impl IntoIterator<Item = &'p MovePackage>,
    ) -> Result<MovePackage, ExecutionError>;
    fn original_package_id(&self) -> ObjectID;
    fn deserialize_module(
        &self,
        module: &Identifier,
        binary_config: &BinaryConfig,
    ) -> IotaResult<CompiledModule>;
    fn normalize<S: Hash + Eq + Clone + ToString, Pool: StringPool<String = S>>(
        &self,
        pool: &mut Pool,
        binary_config: &BinaryConfig,
        include_code: bool,
    ) -> IotaResult<BTreeMap<String, Module<S>>>;
}

Required Methods§

Source

fn new_initial<'p>( modules: &[CompiledModule], protocol_config: &ProtocolConfig, transitive_dependencies: impl IntoIterator<Item = &'p MovePackage>, ) -> Result<MovePackage, ExecutionError>

Source

fn new_upgraded<'p>( &self, storage_id: ObjectID, modules: &[CompiledModule], protocol_config: &ProtocolConfig, transitive_dependencies: impl IntoIterator<Item = &'p MovePackage>, ) -> Result<MovePackage, ExecutionError>

Source

fn new_system( version: SequenceNumber, modules: &[CompiledModule], dependencies: impl IntoIterator<Item = ObjectID>, ) -> MovePackage

Source

fn from_module_iter_with_type_origin_table<'p>( storage_id: ObjectID, self_id: ObjectID, version: SequenceNumber, modules: &[CompiledModule], protocol_config: &ProtocolConfig, type_origin_table: Vec<TypeOrigin>, transitive_dependencies: impl IntoIterator<Item = &'p MovePackage>, ) -> Result<MovePackage, ExecutionError>

Source

fn original_package_id(&self) -> ObjectID

Source

fn deserialize_module( &self, module: &Identifier, binary_config: &BinaryConfig, ) -> IotaResult<CompiledModule>

Source

fn normalize<S: Hash + Eq + Clone + ToString, Pool: StringPool<String = S>>( &self, pool: &mut Pool, binary_config: &BinaryConfig, include_code: bool, ) -> IotaResult<BTreeMap<String, Module<S>>>

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§