Struct beancount_parser_2::Directive
source · #[non_exhaustive]pub struct Directive<S, D> {
pub date: Date,
pub content: DirectiveContent<S, D>,
pub metadata: HashMap<S, Value<S, D>>,
pub line_number: u32,
}
Expand description
A beancount “directive”
It has fields common to all directives, and a Directive::content
field with
a different content for each directive type.
let input = r#"
2022-01-01 open Assets:Cash
2022-01-01 * "Grocery shopping"
Expensses:Groceerices 10 CHF
Assets:Cash
"#;
let beancount: BeancountFile<&str, f64> = beancount_parser_2::parse(input).unwrap();
assert_eq!(beancount.directives.len(), 2);
for directive in beancount.directives {
println!("line: {}", directive.line_number);
println!("metadata: {:#?}", directive.metadata);
match directive.content {
DirectiveContent::Open(open) => println!("open account directive: {open:?}"),
DirectiveContent::Transaction(trx) => println!("transaction: {trx:?}"),
other => println!("unknown directive: {other:?}"),
}
}
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. }
syntax; cannot be matched against without a wildcard ..
; and struct update syntax will not work.date: Date
Date of the directive
content: DirectiveContent<S, D>
Content of the directive that is specific to each directive type
metadata: HashMap<S, Value<S, D>>
Metadata associated to the directive
See: https://beancount.github.io/docs/beancount_language_syntax.html#metadata
line_number: u32
Line number where the directive was found in the input file
Trait Implementations§
Auto Trait Implementations§
impl<S, D> RefUnwindSafe for Directive<S, D>where D: RefUnwindSafe, S: RefUnwindSafe,
impl<S, D> Send for Directive<S, D>where D: Send, S: Send,
impl<S, D> Sync for Directive<S, D>where D: Sync, S: Sync,
impl<S, D> Unpin for Directive<S, D>where D: Unpin, S: Unpin,
impl<S, D> UnwindSafe for Directive<S, D>where D: UnwindSafe, S: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more