Struct ckb_std::dynamic_loading::CKBDLContext[][src]

#[repr(C)]
#[repr(align(4096))]
pub struct CKBDLContext<T>(_);
Expand description

Dynamic loading context T represent a buffer type, for example: [u8; 64 * 1024], the size of T must aligned with PAGE_SIZE 4096.

Implementations

👎 Deprecated since 0.7.3:

Please use the dynamic_loading_c_impl instead

Unsafe

Undefined behavior will happen if the type T is not a [u8; length]

Create instance of dynamic loading context

👎 Deprecated since 0.7.3:

Please use the dynamic_loading_c_impl instead

Load a shared library from dep cells See module level documentation for details

👎 Deprecated since 0.7.3:

Please use the dynamic_loading_c_impl instead

Load a shared library from dep cells to specified buffer offset. See module level documentation for details

This function is used for loading multiple libraries.

Example

let mut context = CKBDLContext::<[u8; 64 * 1024]>::new();
let mut size = size_of_val(&context);
let mut offset = 0;

let lib1 = context.load(&CODE_HASH_LIB_1).expect("load shared lib");
size -= lib1.consumed_size()
offset += lib1.consumed_size()

let lib2 = context.load_with_offset(&CODE_HASH_LIB_2, offset, size).expect("load shared lib");
size -= lib2.consumed_size()
offset += lib2.consumed_size()

let lib3 = context.load_with_offset(&CODE_HASH_LIB_3, offset, size).expect("load shared lib");

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.