summaryrefslogtreecommitdiff
path: root/src/types/ids.rs
blob: 03ebb5952b23157077f0caf9aae2361dd0a663ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
use ulid::Ulid;

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct AccountId(Ulid);

impl AccountId {
    pub(crate) fn from_ulid(ulid: Ulid) -> Self {
        AccountId(ulid)
    }
    pub fn as_ulid(&self) -> Ulid {
        self.0
    }
}

impl std::fmt::Display for AccountId {
    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
        write!(f, "{}", self.0)
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct PostingId(Ulid);

impl PostingId {
    pub(crate) fn from_ulid(ulid: Ulid) -> Self {
        PostingId(ulid)
    }
    pub fn as_ulid(&self) -> Ulid {
        self.0
    }
}

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
pub struct JournalEntryId(Ulid);

impl JournalEntryId {
    pub(crate) fn from_ulid(ulid: Ulid) -> Self {
        JournalEntryId(ulid)
    }
    pub fn as_ulid(&self) -> Ulid {
        self.0
    }
}