• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ngalaiko / hledger-desktop / 11782383692

11 Nov 2024 04:25PM UTC coverage: 68.111%. Remained the same
11782383692

push

github

ngalaiko
hledger-desktop: offload parsing to rayon

0 of 5 new or added lines in 1 file covered. (0.0%)

20 existing lines in 1 file now uncovered.

786 of 1154 relevant lines covered (68.11%)

2.11 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/crates/hledger-parser/src/directive.rs
1
mod account;
2
mod auto_postings;
3
mod commodity;
4
mod decimal_mark;
5
mod include;
6
mod payee;
7
mod price;
8
mod tag;
9
mod transaction;
10
mod year;
11

12
use chumsky::prelude::*;
13

14
use crate::component::comment::{block, inline, line};
15
use crate::component::whitespace::whitespace;
16
use crate::directive::account::account;
17
use crate::directive::auto_postings::auto_postings;
18
use crate::directive::commodity::commodity;
19
use crate::directive::decimal_mark::decimal_mark;
20
use crate::directive::include::include;
21
use crate::directive::payee::payee;
22
use crate::directive::price::price;
23
use crate::directive::tag::tag;
24
use crate::directive::year::year;
25
use crate::state::State;
26

27
pub use crate::directive::account::Account;
28
pub use crate::directive::auto_postings::{AutoPosting, AutosPostingRule, Query, Term};
29
pub use crate::directive::commodity::Commodity;
30
pub use crate::directive::decimal_mark::DecimalMark;
31
pub use crate::directive::include::{Format, Include};
32
pub use crate::directive::payee::Payee;
33
pub use crate::directive::price::Price;
34
pub use crate::directive::tag::Tag;
35
pub use crate::directive::transaction::{
36
    Assertion, Periodic as PeriodicTransaction, Posting, Simple as Transaction, Status,
37
};
38
pub use crate::directive::year::Year;
39

40
#[derive(Clone, Debug)]
41
pub enum Directive {
42
    Account(Account),
43
    AutoPostings(AutosPostingRule),
44
    Commodity(Commodity),
45
    DecimalMark(DecimalMark),
46
    Include(Include),
47
    Payee(Payee),
48
    Price(Price),
49
    Tag(Tag),
50
    Transaction(Transaction),
51
    PeriodicTransaction(PeriodicTransaction),
52
    Year(Year),
53
}
54

55
pub fn directive<'a>() -> impl Parser<'a, &'a str, Directive, extra::Full<Rich<'a, char>, State, ()>>
×
56
{
57
    account()
×
58
        .map(Directive::Account)
×
59
        .or(auto_postings().map(Directive::AutoPostings))
×
60
        .or(commodity().map(Directive::Commodity))
×
61
        .or(decimal_mark().map(Directive::DecimalMark))
×
62
        .or(include().map(Directive::Include))
×
63
        .or(payee().map(Directive::Payee))
×
64
        .or(price().map(Directive::Price))
×
65
        .or(tag().map(Directive::Tag))
×
66
        .or(transaction::simple().map(Directive::Transaction))
×
67
        .or(transaction::periodic().map(Directive::PeriodicTransaction))
×
68
        .or(year().map(Directive::Year))
×
69
}
70

71
pub fn directives<'a>(
×
72
) -> impl Parser<'a, &'a str, Vec<Directive>, extra::Full<Rich<'a, char>, State, ()>> {
73
    directive()
×
74
        .map(Some)
×
75
        .or(inline().map(|_| None))
×
76
        .or(line().map(|_| None))
×
77
        .or(block().map(|_| None))
×
78
        .or(whitespace().repeated().map(|()| None))
×
79
        .separated_by(text::newline())
×
80
        .collect::<Vec<_>>()
81
        .map(|directives| directives.into_iter().flatten().collect())
×
82
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc