c8str
This crate provides the C8Str and C8String types, which combine the properties
of Rust native utf-8 strings and C style null terminated strings. These types guarantee that:
- The string is valid utf-8
- The string ends with a null terminator
- The string doesn't contain any null bytes before the end
Both types provide methods to get references to both &str (with or without the null
terminator) and &CStr, or a pointer to *const c_char. They dereference to &str
without the null terminator.
The c8 macro creates compile time constants of type &C8Str from string literals.
C8Str is no_std compatible. C8String is available behind the alloc feature.
# use c8;
# use CStr;
assert_eq!;
assert_eq!;
// assert_eq!(c8!("hello").as_c_str(), c"hello")); // from rust 1.77
Features
alloc- Enable theC8Stringtype. This requires the standardallocorstdcrates.std- Implement theErrortrait fromstdfor this crate's error types. Impliesalloc.
Version history
- 0.1.1 - show documentation for all features on docs.rs
- 0.1.0 - first release