diff options
Diffstat (limited to 'third_party/rust/rust_decimal/src/lib.rs')
-rw-r--r-- | third_party/rust/rust_decimal/src/lib.rs | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/third_party/rust/rust_decimal/src/lib.rs b/third_party/rust/rust_decimal/src/lib.rs new file mode 100644 index 0000000000..84239fd6a8 --- /dev/null +++ b/third_party/rust/rust_decimal/src/lib.rs @@ -0,0 +1,79 @@ +#![doc = include_str!(concat!(env!("OUT_DIR"), "/README-lib.md"))] +#![forbid(unsafe_code)] +#![deny(clippy::print_stdout, clippy::print_stderr)] +#![cfg_attr(not(feature = "std"), no_std)] +extern crate alloc; + +mod constants; +mod decimal; +mod error; +mod ops; +mod str; + +// We purposely place this here for documentation ordering +mod arithmetic_impls; + +#[cfg(feature = "rust-fuzz")] +mod fuzz; +#[cfg(feature = "maths")] +mod maths; +#[cfg(any(feature = "db-diesel1-mysql", feature = "db-diesel2-mysql"))] +mod mysql; +#[cfg(any( + feature = "db-tokio-postgres", + feature = "db-postgres", + feature = "db-diesel1-postgres", + feature = "db-diesel2-postgres", +))] +mod postgres; +#[cfg(feature = "rand")] +mod rand; +#[cfg(feature = "rocket-traits")] +mod rocket; +#[cfg(all( + feature = "serde", + not(any( + feature = "serde-with-str", + feature = "serde-with-float", + feature = "serde-with-arbitrary-precision" + )) +))] +mod serde; +/// Serde specific functionality to customize how a decimal is serialized/deserialized (`serde_with`) +#[cfg(all( + feature = "serde", + any( + feature = "serde-with-str", + feature = "serde-with-float", + feature = "serde-with-arbitrary-precision" + ) +))] +pub mod serde; + +pub use decimal::{Decimal, RoundingStrategy}; +pub use error::Error; +#[cfg(feature = "maths")] +pub use maths::MathematicalOps; + +/// A convenience module appropriate for glob imports (`use rust_decimal::prelude::*;`). +pub mod prelude { + #[cfg(feature = "maths")] + pub use crate::maths::MathematicalOps; + pub use crate::{Decimal, RoundingStrategy}; + pub use core::str::FromStr; + pub use num_traits::{FromPrimitive, One, Signed, ToPrimitive, Zero}; +} + +#[cfg(all(feature = "diesel1", not(feature = "diesel2")))] +#[macro_use] +extern crate diesel1 as diesel; + +#[cfg(feature = "diesel2")] +extern crate diesel2 as diesel; + +/// Shortcut for `core::result::Result<T, rust_decimal::Error>`. Useful to distinguish +/// between `rust_decimal` and `std` types. +pub type Result<T> = core::result::Result<T, Error>; + +// #[cfg(feature = "legacy-ops")] +// compiler_error!("legacy-ops has been removed as 1.x"); |