Module inlinable_string::inline_string [] [src]

A short UTF-8 string that uses inline storage and does no heap allocation. It may be no longer than INLINE_STRING_CAPACITY bytes long.

The capacity restriction makes many operations that would otherwise be infallible on std::string::String fallible. Additionally, many trait interfaces don't allow returning an error when a string runs out of space, and so the trait implementation simply panics. As such, InlineString does not implement StringExt and is not a drop-in replacement for std::string::String in the way that inlinable_string::InlinableString aims to be, and is generally difficult to work with. It is not recommended to use this type directly unless you really, really want to avoid heap allocation, can live with the imposed size restrictions, and are willing work around potential sources of panics (eg, in the From trait implementation).

Examples

use inlinable_string::InlineString;

let mut s = InlineString::new();
assert!(s.push_str("hi world").is_ok());
assert_eq!(s, "hi world");

assert!(s.push_str("a really long string that is much bigger than `INLINE_STRING_CAPACITY`").is_err());
assert_eq!(s, "hi world");

Structs

InlineString

A short UTF-8 string that uses inline storage and does no heap allocation.

NotEnoughSpaceError

The error returned when there is not enough space in a InlineString for the requested operation.

Constants

INLINE_STRING_CAPACITY

The capacity (in bytes) of inline storage for small strings. InlineString::len() may never be larger than this.