diff --git a/src/builder/data.rs b/src/builder/data.rs index 46398e5..39964fd 100644 --- a/src/builder/data.rs +++ b/src/builder/data.rs @@ -1,6 +1,7 @@ use super::invoke::{Identity, Invoke}; use elements; +/// Data segment builder pub struct DataSegmentBuilder { callback: F, // todo: add mapper once multiple memory refs possible @@ -10,12 +11,14 @@ pub struct DataSegmentBuilder { } impl DataSegmentBuilder { + /// New data segment builder pub fn new() -> Self { DataSegmentBuilder::with_callback(Identity) } } impl DataSegmentBuilder { + /// New data segment builder inside the chain context pub fn with_callback(callback: F) -> Self { DataSegmentBuilder { callback: callback, @@ -25,11 +28,13 @@ impl DataSegmentBuilder { } } + /// Set offset initialization opcode. `End` opcode will be added automatically. pub fn offset(mut self, opcode: elements::Opcode) -> Self { self.offset = elements::InitExpr::new(vec![opcode, elements::Opcode::End]); self } + /// Set the bytes value of the segment pub fn value(mut self, value: Vec) -> Self { self.value = value; self @@ -37,6 +42,7 @@ impl DataSegmentBuilder { } impl DataSegmentBuilder where F: Invoke { + /// Finish current builder, spawning resulting struct pub fn build(self) -> F::Result { self.callback.invoke( elements::DataSegment::new( diff --git a/src/builder/mod.rs b/src/builder/mod.rs index 6337da5..bb21864 100644 --- a/src/builder/mod.rs +++ b/src/builder/mod.rs @@ -22,3 +22,4 @@ pub use self::import::{import, ImportBuilder}; pub use self::invoke::Identity; pub use self::memory::MemoryBuilder; pub use self::module::{module, from_module, ModuleBuilder}; +pub use self::table::{TableBuilder, TableDefinition, TableEntryDefinition};