mirror of
https://github.com/fluencelabs/parity-wasm
synced 2025-06-28 22:22:02 +00:00
data builder doc effort
This commit is contained in:
@ -1,6 +1,7 @@
|
||||
use super::invoke::{Identity, Invoke};
|
||||
use elements;
|
||||
|
||||
/// Data segment builder
|
||||
pub struct DataSegmentBuilder<F=Identity> {
|
||||
callback: F,
|
||||
// todo: add mapper once multiple memory refs possible
|
||||
@ -10,12 +11,14 @@ pub struct DataSegmentBuilder<F=Identity> {
|
||||
}
|
||||
|
||||
impl DataSegmentBuilder {
|
||||
/// New data segment builder
|
||||
pub fn new() -> Self {
|
||||
DataSegmentBuilder::with_callback(Identity)
|
||||
}
|
||||
}
|
||||
|
||||
impl<F> DataSegmentBuilder<F> {
|
||||
/// New data segment builder inside the chain context
|
||||
pub fn with_callback(callback: F) -> Self {
|
||||
DataSegmentBuilder {
|
||||
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 {
|
||||
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<u8>) -> Self {
|
||||
self.value = value;
|
||||
self
|
||||
@ -37,6 +42,7 @@ impl<F> DataSegmentBuilder<F> {
|
||||
}
|
||||
|
||||
impl<F> DataSegmentBuilder<F> where F: Invoke<elements::DataSegment> {
|
||||
/// Finish current builder, spawning resulting struct
|
||||
pub fn build(self) -> F::Result {
|
||||
self.callback.invoke(
|
||||
elements::DataSegment::new(
|
||||
|
@ -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};
|
||||
|
Reference in New Issue
Block a user