pub struct MysteryString(/* private fields */);
Expand description
A string whose encoding is defined by the IO system, but probably treated as Latin-1.
Strings of this type can be serialized into a story file (via the
Item::MysteryString
) constructor formatted
compatibly with the streamstr
instruction. Constructors ensure that it
will not contain any embedded nulls. Internally it’s a Bytes
, so cloning
it is cheap.
This corresponds to a Glulx E0
string, of which the spec says “the
encoding scheme is the business of the I/O system; in Glk, it will be the
Latin-1 character set”. It is in any case required to be a single-byte
encoding which uses a zero byte as a terminator.
When building a MysteryString
from a char
iterator or using its
Display
impl, Latin1 is assumed. However, you can also build it from a
u8
iterator in which case no assumption is made about the encoding.
Implementations§
Source§impl MysteryString
impl MysteryString
Sourcepub fn from_chars<I, C>(chars: I) -> Result<Self, StringConversionError<Self>>
pub fn from_chars<I, C>(chars: I) -> Result<Self, StringConversionError<Self>>
Constructs a MysteryString
from an iterator over char
s (or over any
type that lets you borrow a char
).
If the string contains embedded nulls or any character which cannot be
represented in Latin-1, an error is returned, but a lossy version can be
extracted from the error struct. The lossy string replaces nulls and
unrepresentable characters with b'?'
.
Sourcepub fn from_bytes<I, C>(chars: I) -> Result<Self, StringConversionError<Self>>
pub fn from_bytes<I, C>(chars: I) -> Result<Self, StringConversionError<Self>>
Constructs a MysteryString
from an iterator over u8
s (or over any
type that lets you borrow a u8
).
If the string contains embedded nulls, an error is returned, but a lossy
version can be extracted from the error struct. The lossy string is
truncated at the first occurence of a null. (Unlike from_chars
, this
constructor doesn’t that the string is Latin-1 or even any ASCII
superset, so therefore it can’t know what would be a reasonable
replacement character to substitute.)
Sourcepub fn from_chars_lossy<I, C>(chars: I) -> Self
pub fn from_chars_lossy<I, C>(chars: I) -> Self
Like from_chars
, but in case of error will
silently unwrap the error and return the lossy version.
Sourcepub fn from_bytes_lossy<I, C>(chars: I) -> Self
pub fn from_bytes_lossy<I, C>(chars: I) -> Self
Like from_bytes
, but in case of error will
silently unwrap the error and return the lossy version.
Sourcepub fn len(&self) -> usize
pub fn len(&self) -> usize
Returns the length of the string, excluding prefix and null terminator.
Sourcepub fn len_with_prefix_and_nul(&self) -> usize
pub fn len_with_prefix_and_nul(&self) -> usize
Returns the length of the string, including prefix and null terminator.
Sourcepub fn into_bytes(self) -> Bytes
pub fn into_bytes(self) -> Bytes
Unwraps the string into its underlying Bytes
.
Trait Implementations§
Source§impl Clone for MysteryString
impl Clone for MysteryString
Source§fn clone(&self) -> MysteryString
fn clone(&self) -> MysteryString
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more