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§
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>>>
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.