1 // This file is part of ICU4X. For terms of use, please see the file 2 // called LICENSE at the top level of the ICU4X source tree 3 // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). 4 5 //! This crate provides [`ZeroFrom`], a trait for converting types in a zero-copy way. 6 //! 7 //! See the documentation of [`ZeroFrom`] for more details. 8 9 // https://github.com/unicode-org/icu4x/blob/main/documents/process/boilerplate.md#library-annotations 10 #![cfg_attr(not(any(test, doc)), no_std)] 11 #![cfg_attr( 12 not(test), 13 deny( 14 clippy::indexing_slicing, 15 clippy::unwrap_used, 16 clippy::expect_used, 17 clippy::panic, 18 clippy::exhaustive_structs, 19 clippy::exhaustive_enums, 20 clippy::trivially_copy_pass_by_ref, 21 missing_debug_implementations, 22 ) 23 )] 24 // The lifetimes here are important for safety and explicitly writing 25 // them out is good even when redundant 26 #![allow(clippy::needless_lifetimes)] 27 28 #[cfg(feature = "alloc")] 29 extern crate alloc; 30 31 mod macro_impls; 32 mod zero_from; 33 34 #[cfg(feature = "derive")] 35 pub use zerofrom_derive::ZeroFrom; 36 37 pub use crate::zero_from::ZeroFrom; 38