daml-grpc 0.3.0

Daml Ledger GRPC API
Documentation
use crate::data::DamlIdentifier;
use crate::data::value::{DamlRecord, DamlRecordField, DamlValue};

/// Helper for building a [`DamlRecord`].
#[derive(Debug, Default)]
pub struct DamlRecordBuilder {
    record_id: Option<DamlIdentifier>,
    fields: Vec<DamlRecordField>,
}

impl DamlRecordBuilder {
    pub fn new() -> Self {
        Self::default()
    }

    pub fn record_id(mut self, record_id: DamlIdentifier) -> Self {
        self.record_id = Some(record_id);
        self
    }

    pub fn add_field(mut self, label: impl Into<String>, value: DamlValue) -> Self {
        self.fields.push(DamlRecordField::new(Some(label), value));
        self
    }

    pub fn build(self) -> DamlRecord {
        DamlRecord::new(self.fields, self.record_id)
    }
}