mirror of
https://github.com/fluencelabs/parity-wasm
synced 2025-06-29 06:32:17 +00:00
data builder doc effort
This commit is contained in:
@ -1,6 +1,7 @@
|
|||||||
use super::invoke::{Identity, Invoke};
|
use super::invoke::{Identity, Invoke};
|
||||||
use elements;
|
use elements;
|
||||||
|
|
||||||
|
/// Data segment builder
|
||||||
pub struct DataSegmentBuilder<F=Identity> {
|
pub struct DataSegmentBuilder<F=Identity> {
|
||||||
callback: F,
|
callback: F,
|
||||||
// todo: add mapper once multiple memory refs possible
|
// todo: add mapper once multiple memory refs possible
|
||||||
@ -10,12 +11,14 @@ pub struct DataSegmentBuilder<F=Identity> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl DataSegmentBuilder {
|
impl DataSegmentBuilder {
|
||||||
|
/// New data segment builder
|
||||||
pub fn new() -> Self {
|
pub fn new() -> Self {
|
||||||
DataSegmentBuilder::with_callback(Identity)
|
DataSegmentBuilder::with_callback(Identity)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<F> DataSegmentBuilder<F> {
|
impl<F> DataSegmentBuilder<F> {
|
||||||
|
/// New data segment builder inside the chain context
|
||||||
pub fn with_callback(callback: F) -> Self {
|
pub fn with_callback(callback: F) -> Self {
|
||||||
DataSegmentBuilder {
|
DataSegmentBuilder {
|
||||||
callback: callback,
|
callback: callback,
|
||||||
@ -25,11 +28,13 @@ impl<F> DataSegmentBuilder<F> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set offset initialization opcode. `End` opcode will be added automatically.
|
||||||
pub fn offset(mut self, opcode: elements::Opcode) -> Self {
|
pub fn offset(mut self, opcode: elements::Opcode) -> Self {
|
||||||
self.offset = elements::InitExpr::new(vec![opcode, elements::Opcode::End]);
|
self.offset = elements::InitExpr::new(vec![opcode, elements::Opcode::End]);
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Set the bytes value of the segment
|
||||||
pub fn value(mut self, value: Vec<u8>) -> Self {
|
pub fn value(mut self, value: Vec<u8>) -> Self {
|
||||||
self.value = value;
|
self.value = value;
|
||||||
self
|
self
|
||||||
@ -37,6 +42,7 @@ impl<F> DataSegmentBuilder<F> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<F> DataSegmentBuilder<F> where F: Invoke<elements::DataSegment> {
|
impl<F> DataSegmentBuilder<F> where F: Invoke<elements::DataSegment> {
|
||||||
|
/// Finish current builder, spawning resulting struct
|
||||||
pub fn build(self) -> F::Result {
|
pub fn build(self) -> F::Result {
|
||||||
self.callback.invoke(
|
self.callback.invoke(
|
||||||
elements::DataSegment::new(
|
elements::DataSegment::new(
|
||||||
|
@ -22,3 +22,4 @@ pub use self::import::{import, ImportBuilder};
|
|||||||
pub use self::invoke::Identity;
|
pub use self::invoke::Identity;
|
||||||
pub use self::memory::MemoryBuilder;
|
pub use self::memory::MemoryBuilder;
|
||||||
pub use self::module::{module, from_module, ModuleBuilder};
|
pub use self::module::{module, from_module, ModuleBuilder};
|
||||||
|
pub use self::table::{TableBuilder, TableDefinition, TableEntryDefinition};
|
||||||
|
Reference in New Issue
Block a user