/rust/registry/src/index.crates.io-1949cf8c6b5b557f/time-0.3.44/src/lib.rs
Line | Count | Source |
1 | | //! # Feature flags |
2 | | //! |
3 | | //! This crate exposes a number of features. These can be enabled or disabled as shown |
4 | | //! [in Cargo's documentation](https://doc.rust-lang.org/cargo/reference/features.html). Features |
5 | | //! are _disabled_ by default unless otherwise noted. |
6 | | //! |
7 | | //! Reliance on a given feature is always indicated alongside the item definition. |
8 | | //! |
9 | | //! - `std` (_enabled by default, implicitly enables `alloc`_) |
10 | | //! |
11 | | //! This enables a number of features that depend on the standard library. |
12 | | //! |
13 | | //! - `alloc` (_enabled by default via `std`_) |
14 | | //! |
15 | | //! Enables a number of features that require the ability to dynamically allocate memory. |
16 | | //! |
17 | | //! - `macros` |
18 | | //! |
19 | | //! Enables macros that provide compile-time verification of values and intuitive syntax. |
20 | | //! |
21 | | //! - `formatting` (_implicitly enables `std`_) |
22 | | //! |
23 | | //! Enables formatting of most structs. |
24 | | //! |
25 | | //! - `parsing` |
26 | | //! |
27 | | //! Enables parsing of most structs. |
28 | | //! |
29 | | //! - `local-offset` (_implicitly enables `std`_) |
30 | | //! |
31 | | //! This feature enables a number of methods that allow obtaining the system's UTC offset. |
32 | | //! |
33 | | //! - `large-dates` |
34 | | //! |
35 | | //! By default, only years within the ±9999 range (inclusive) are supported. If you need support |
36 | | //! for years outside this range, consider enabling this feature; the supported range will be |
37 | | //! increased to ±999,999. |
38 | | //! |
39 | | //! Note that enabling this feature has some costs, as it means forgoing some optimizations. |
40 | | //! Ambiguities may be introduced when parsing that would not otherwise exist. |
41 | | //! |
42 | | //! - `serde` |
43 | | //! |
44 | | //! Enables [`serde`](https://docs.rs/serde) support for all types. |
45 | | //! |
46 | | //! - `serde-human-readable` (_implicitly enables `serde`, `formatting`, and `parsing`_) |
47 | | //! |
48 | | //! Allows `serde` representations to use a human-readable format. This is determined by the |
49 | | //! serializer, not the user. If this feature is not enabled or if the serializer requests a |
50 | | //! non-human-readable format, a format optimized for binary representation will be used. |
51 | | //! |
52 | | //! Libraries should never enable this feature, as the decision of what format to use should be up |
53 | | //! to the user. |
54 | | //! |
55 | | //! - `rand` (_implicitly enables `rand08` and `rand09`_) |
56 | | //! |
57 | | //! Previously, this would enable support for `rand` 0.8. Since the release of `rand` 0.9, the |
58 | | //! feature has been split into `rand08` and `rand09` to allow support for both versions. For |
59 | | //! backwards compatibility and simplicity, this feature enables support for _both_ series. |
60 | | //! |
61 | | //! It is strongly recommended to enable `rand08` or `rand09` directly, as enabling `rand` will |
62 | | //! needlessly pull in both versions. |
63 | | //! |
64 | | //! - `rand08` |
65 | | //! |
66 | | //! Enables [`rand` 0.8](https://docs.rs/rand/0.8) support for all types. |
67 | | //! |
68 | | //! - `rand09` |
69 | | //! |
70 | | //! Enables [`rand` 0.9](https://docs.rs/rand/0.9) support for all types. |
71 | | //! |
72 | | //! - `quickcheck` (_implicitly enables `alloc`_) |
73 | | //! |
74 | | //! Enables [quickcheck](https://docs.rs/quickcheck) support for all types. |
75 | | //! |
76 | | //! - `wasm-bindgen` |
77 | | //! |
78 | | //! Enables [`wasm-bindgen`](https://github.com/rustwasm/wasm-bindgen) support for converting |
79 | | //! [JavaScript dates](https://rustwasm.github.io/wasm-bindgen/api/js_sys/struct.Date.html), as |
80 | | //! well as obtaining the UTC offset from JavaScript. |
81 | | |
82 | | #![doc(html_playground_url = "https://play.rust-lang.org")] |
83 | | #![cfg_attr(docsrs, feature(doc_auto_cfg, doc_notable_trait))] |
84 | | #![no_std] |
85 | | #![doc(html_favicon_url = "https://avatars0.githubusercontent.com/u/55999857")] |
86 | | #![doc(html_logo_url = "https://avatars0.githubusercontent.com/u/55999857")] |
87 | | #![doc(test(attr(deny(warnings))))] |
88 | | |
89 | | #[allow(unused_extern_crates)] |
90 | | #[cfg(feature = "alloc")] |
91 | | extern crate alloc; |
92 | | |
93 | | #[cfg(feature = "std")] |
94 | | extern crate std; |
95 | | |
96 | | mod date; |
97 | | mod duration; |
98 | | pub mod error; |
99 | | pub mod ext; |
100 | | #[cfg(any(feature = "formatting", feature = "parsing"))] |
101 | | pub mod format_description; |
102 | | #[cfg(feature = "formatting")] |
103 | | pub mod formatting; |
104 | | mod hint; |
105 | | #[cfg(feature = "std")] |
106 | | mod instant; |
107 | | mod internal_macros; |
108 | | mod interop; |
109 | | #[cfg(feature = "macros")] |
110 | | pub mod macros; |
111 | | mod month; |
112 | | mod offset_date_time; |
113 | | #[cfg(feature = "parsing")] |
114 | | pub mod parsing; |
115 | | mod primitive_date_time; |
116 | | #[cfg(feature = "quickcheck")] |
117 | | mod quickcheck; |
118 | | #[cfg(feature = "rand08")] |
119 | | mod rand08; |
120 | | #[cfg(feature = "rand09")] |
121 | | mod rand09; |
122 | | #[cfg(feature = "serde")] |
123 | | pub mod serde; |
124 | | mod sys; |
125 | | #[cfg(test)] |
126 | | mod tests; |
127 | | mod time; |
128 | | mod utc_date_time; |
129 | | mod utc_offset; |
130 | | pub mod util; |
131 | | mod weekday; |
132 | | |
133 | | pub use time_core::convert; |
134 | | |
135 | | pub use crate::date::Date; |
136 | | pub use crate::duration::Duration; |
137 | | pub use crate::error::Error; |
138 | | #[doc(hidden)] |
139 | | #[cfg(feature = "std")] |
140 | | #[expect(deprecated)] |
141 | | pub use crate::instant::Instant; |
142 | | pub use crate::month::Month; |
143 | | pub use crate::offset_date_time::OffsetDateTime; |
144 | | pub use crate::primitive_date_time::PrimitiveDateTime; |
145 | | pub use crate::time::Time; |
146 | | pub use crate::utc_date_time::UtcDateTime; |
147 | | pub use crate::utc_offset::UtcOffset; |
148 | | pub use crate::weekday::Weekday; |
149 | | |
150 | | /// An alias for [`std::result::Result`] with a generic error from the time crate. |
151 | | pub type Result<T> = core::result::Result<T, Error>; |
152 | | |
153 | | /// This is a separate function to reduce the code size of `expect_opt!`. |
154 | | #[inline(never)] |
155 | | #[cold] |
156 | | #[track_caller] |
157 | 0 | const fn expect_failed(message: &str) -> ! { |
158 | 0 | panic!("{}", message) |
159 | | } |
160 | | |
161 | | /// Returns the size of the pointed-to value in bytes. |
162 | | /// |
163 | | /// This is a `const fn` in the standard library starting in Rust 1.85. When MSRV is at least that, |
164 | | /// this can be removed. |
165 | | #[inline] |
166 | 0 | const fn size_of_val<T>(_: &T) -> usize { |
167 | 0 | size_of::<T>() |
168 | 0 | } |