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;