Support metadata on postings

korrat
Dec 17, 2023, 10:25 AM
OILXIR24AFYF4OXRBEFFSCNUJ56P2FI5UOT6NIVCR72QJIRSWUQAC

Dependencies

  • [2] R524JUUE Implement metadata & price directives
  • [3] YDK6X6PP add a library of important types for beancount
  • [4] T2S6UAVJ Include builder methods on beancount-types
  • [*] QRIJE4AQ add a simple pretty printer for beancount directives

Change contents

  • edit in common/beancount-types/src/transaction.rs at line 33
    [3.465]
    [3.120]
    pub meta: MetadataMap,
  • replacement in common/beancount-types/src/transaction.rs at line 40
    [3.229][3.229:291]()
    let (flag, amount, cost, price) = Default::default();
    [3.229]
    [3.291]
    let (flag, amount, cost, price, meta) = Default::default();
  • edit in common/beancount-types/src/transaction.rs at line 48
    [3.403]
    [3.403]
    meta,
  • edit in common/beancount-types/src/transaction.rs at line 55
    [3.451]
    [3.451]
    pub fn add_meta(
    &mut self,
    key: impl Into<MetadataKey>,
    value: impl Into<MetadataValue>,
    ) -> &mut Self {
    self.meta.insert(key.into(), value.into());
    self
    }
    #[inline]
  • edit in common/beancount-types/src/transaction.rs at line 79
    [2.9639]
    [3.787]
    self
    }
    #[inline]
    pub fn clear_meta(&mut self) -> &mut Self {
    self.meta.clear();
  • edit in common/beancount-types/src/transaction.rs at line 125
    [3.1663]
    [3.1663]
    self
    }
    #[inline]
    pub fn set_meta(&mut self, meta: impl Into<MetadataMap>) -> &mut Self {
    self.meta = meta.into();
  • edit in common/beancount-types/src/transaction.rs at line 149
    [3.686]
    [3.686]
    meta,
  • edit in common/beancount-types/src/transaction.rs at line 167
    [3.1086]
    [3.1086]
    }
    for (key, value) in meta {
    write!(f, "\n {key}: {value}")?;
  • edit in common/beancount-pretty-printer/src/lib.rs at line 285
    [6.4514]
    [6.4514]
    meta,
  • edit in common/beancount-pretty-printer/src/lib.rs at line 303
    [6.4989]
    [6.4989]
    }
    for (key, value) in meta {
    write!(self.inner, "\n {key}: {value}")?;