bread_common/
lib.rs

1use std::collections::{
2    BTreeMap,
3    HashMap,
4};
5use serde::{
6    Deserialize,
7    Serialize,
8    Serializer,
9};
10
11pub mod projectconfig;
12pub mod accountconfig;
13
14#[derive(PartialEq, Eq, PartialOrd, Ord, Clone, Copy, Hash, Serialize, Deserialize)]
15pub struct AccountId(pub i64);
16
17impl AccountId {
18    pub fn from_sql(x: i64) -> Result<Self, String> {
19        Ok(AccountId(x))
20    }
21
22    pub fn to_sql(self) -> i64 {
23        self.0
24    }
25}
26
27pub fn is_default<T: Default + PartialEq>(t: &T) -> bool {
28    t == &T::default()
29}
30
31pub fn serde_order_map<
32    K: Ord + Serialize,
33    V: Serialize,
34    S: serde::Serializer,
35>(value: &HashMap<K, V>, serializer: S) -> Result<S::Ok, S::Error>
36where
37    S: Serializer {
38    let ordered: BTreeMap<_, _> = value.iter().collect();
39    ordered.serialize(serializer)
40}
41
42pub const DEFAULT_WEIGHT: u32 = 100;