Sha256: 3fe76e258b0db2896284bcf4f50a4ac35b7efc542649b4c9f13c6e71c5957ae4
Contents?: true
Size: 1.09 KB
Versions: 3
Compression:
Stored size: 1.09 KB
Contents
// This file is part of ICU4X. For terms of use, please see the file // called LICENSE at the top level of the ICU4X source tree // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ). #[macro_export] macro_rules! tinystr { ($n:literal, $s:literal) => {{ // Force it into a const context; otherwise it may get evaluated at runtime instead. const TINYSTR_MACRO_CONST: $crate::TinyAsciiStr<$n> = { match $crate::TinyAsciiStr::from_bytes($s.as_bytes()) { Ok(s) => s, // We are okay with panicking here because this is in a const context #[allow(clippy::panic)] // Cannot format the error since formatting isn't const yet Err(_) => panic!(concat!("Failed to construct tinystr from ", $s)), } }; TINYSTR_MACRO_CONST }}; } #[cfg(test)] mod tests { #[test] fn test_macro_construction() { let s1 = tinystr!(8, "foobar"); assert_eq!(&*s1, "foobar"); let s1 = tinystr!(12, "foobarbaz"); assert_eq!(&*s1, "foobarbaz"); } }
Version data entries
3 entries across 3 versions & 1 rubygems