daml_grpc/data/
configuration.rs

1use crate::data::{DamlError, DamlResult};
2use crate::grpc_protobuf::com::daml::ledger::api::v1::LedgerConfiguration;
3use crate::util::{from_grpc_duration, Required};
4use std::convert::TryFrom;
5use std::time::Duration;
6
7/// Daml ledger configuration information.
8#[derive(Debug, Eq, PartialEq, Clone, Default)]
9pub struct DamlLedgerConfiguration {
10    max_deduplication_time: Duration,
11}
12
13impl DamlLedgerConfiguration {
14    pub const fn new(max_deduplication_time: Duration) -> Self {
15        Self {
16            max_deduplication_time,
17        }
18    }
19
20    pub const fn max_deduplication_time(&self) -> &Duration {
21        &self.max_deduplication_time
22    }
23}
24
25impl TryFrom<LedgerConfiguration> for DamlLedgerConfiguration {
26    type Error = DamlError;
27
28    fn try_from(response: LedgerConfiguration) -> DamlResult<Self> {
29        let max_deduplication_time: prost_types::Duration = response.max_deduplication_time.req()?;
30        Ok(Self::new(from_grpc_duration(&max_deduplication_time)))
31    }
32}