1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![doc = include_str!("../README.md")]
3#![doc(html_favicon_url = "https://zino.cc/assets/zino-logo.png")]
4#![doc(html_logo_url = "https://zino.cc/assets/zino-logo.svg")]
5#![allow(async_fn_in_trait)]
6
7mod helper;
8mod mock;
9
10pub mod application;
11pub mod crypto;
12pub mod datetime;
13pub mod encoding;
14pub mod error;
15pub mod extension;
16pub mod model;
17pub mod schedule;
18pub mod state;
19pub mod trace;
20pub mod validation;
21
22#[cfg(feature = "i18n")]
23pub mod i18n;
24
25#[cfg(feature = "i18n")]
26#[doc(no_inline)]
27pub use fluent::fluent_args;
28
29#[doc(no_inline)]
30pub use serde_json::json;
31
32pub type JsonValue = serde_json::Value;
34
35pub type Map = serde_json::Map<String, JsonValue>;
37
38pub type AvroValue = apache_avro::types::Value;
40
41pub type Record = Vec<(String, AvroValue)>;
43
44pub type TomlValue = toml::Value;
46
47pub type Uuid = uuid::Uuid;
49
50pub type Decimal = rust_decimal::Decimal;
52
53pub type LazyLock<T> = std::sync::LazyLock<T>;
55
56pub type SharedString = std::borrow::Cow<'static, str>;
58
59pub type BoxError = Box<dyn std::error::Error + Sync + Send + 'static>;
61
62pub type BoxFuture<'a, T = ()> =
64 std::pin::Pin<Box<dyn std::future::Future<Output = T> + Send + 'a>>;