pub enum Encoding {
    Utf8,
    Ascii,
    Binary,
}
Expand description

An Encoding instance represents a character encoding usable in Ruby.

spinoso-string supports three String encodings:

A String’s encoding makes no assertions about the byte content of the String’s internal buffer. The Encoding associated with a String modifies how character-oriented APIs behave, for example String::char_len. A String with an UTF-8 encoding is only conventionally UTF-8 and may contain invalid UTF-8 byte sequences.

Ruby provides the String#encode API which can transcode the bytes of a String to another encoding. Calling String#encode on any of the encodings defined in this enum is a no-op.

Variants

Utf8

Conventionally UTF-8.

Ascii

Conventionally ASCII.

Binary

ASCII-8BIT, binary, arbitrary bytes.

Implementations

The total number of supported encodings.

spinoso-string supports three encodings:

Serialize the encoding to a bitflag.

See try_from_flag for how to deserialize an encoding.

This function is used to implement From<Encoding> for u8.

Examples
assert_eq!(Encoding::Utf8.to_flag(), 2);
assert_eq!(Encoding::Ascii.to_flag(), 4);
assert_eq!(Encoding::Binary.to_flag(), 8);

Deserialize an encoding from a bitflag.

See to_flag for how to serialize an encoding.

This function is used to implement TryFrom<u8> for Encoding.

Errors

If the given flag does not map to any Encoding, an error is returned.

Examples
assert_eq!(Encoding::try_from_flag(2), Ok(Encoding::Utf8));
assert_eq!(Encoding::try_from_flag(4), Ok(Encoding::Ascii));
assert_eq!(Encoding::try_from_flag(8), Ok(Encoding::Binary));
assert_eq!(Encoding::try_from_flag(2 | 4), Err(InvalidEncodingError::new()));
assert_eq!(Encoding::try_from_flag(255), Err(InvalidEncodingError::new()));

Returns a string which represents the encoding for programmers.

Examples
assert_eq!(Encoding::Utf8.inspect(), "#<Encoding:UTF-8>");
assert_eq!(Encoding::Ascii.inspect(), "#<Encoding:US-ASCII>");
assert_eq!(Encoding::Binary.inspect(), "#<Encoding:ASCII-8BIT>");
Ruby Examples
Encoding::UTF_8.inspect       #=> "#<Encoding:UTF-8>"
Encoding::ISO_2022_JP.inspect #=> "#<Encoding:ISO-2022-JP (dummy)>"

Returns the name of the encoding.

This function is used to implement fmt::Display for Encoding.

This function can be used to implement the Ruby functions Encoding#name and Encoding#to_s.

Examples
assert_eq!(Encoding::Utf8.name(), "UTF-8");
assert_eq!(Encoding::Ascii.name(), "US-ASCII");
assert_eq!(Encoding::Binary.name(), "ASCII-8BIT");
Ruby Examples
Encoding::UTF_8.name      #=> "UTF-8"

Returns the list of name and aliases of the encoding.

This function can be used to implement the Ruby function Encoding#names.

Examples
assert_eq!(Encoding::Utf8.names(), ["UTF-8", "CP65001"]);
assert_eq!(Encoding::Ascii.names(), ["US-ASCII", "ASCII", "ANSI_X3.4-1968", "646"]);
assert_eq!(Encoding::Binary.names(), ["ASCII-8BIT", "BINARY"]);
Ruby Examples
Encoding::WINDOWS_31J.names  #=> ["Windows-31J", "CP932", "csWindows31J"]

Returns whether ASCII-compatible or not.

This function can be used to implement the Ruby function Encoding#ascii_compatible?.

Examples
assert!(Encoding::Utf8.is_ascii_compatible());
assert!(Encoding::Ascii.is_ascii_compatible());
assert!(Encoding::Binary.is_ascii_compatible());
Ruby Examples
Encoding::UTF_8.ascii_compatible?     #=> true
Encoding::UTF_16BE.ascii_compatible?  #=> false

Returns true for dummy encodings.

A dummy encoding is an encoding for which character handling is not properly implemented. It is used for stateful encodings.

This function can be used to implement the Ruby function Encoding#dummy?.

Examples
assert!(!Encoding::Utf8.is_dummy());
assert!(!Encoding::Ascii.is_dummy());
assert!(!Encoding::Binary.is_dummy());
Ruby Examples
Encoding::ISO_2022_JP.dummy?       #=> true
Encoding::UTF_8.dummy?             #=> false

Trait Implementations

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more

Outputs the value of Encoding#inspect.

Returns a string which represents the encoding for programmers. See Encoding::inspect.

Returns the “default value” for a type. Read more

Outputs the value of Encoding#to_s.

Returns the name of the encoding. See Encoding::name.

Serialize an Encoding to a bitflag.

See Encoding::to_flag.

Feeds this value into the given Hasher. Read more
Feeds a slice of this type into the given Hasher. Read more
This method returns an Ordering between self and other. Read more
Compares and returns the maximum of two values. Read more
Compares and returns the minimum of two values. Read more
Restrict a value to a certain interval. Read more
This method tests for self and other values to be equal, and is used by ==. Read more
This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason. Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Try to deserialize an Encoding from a bitflag.

See Encoding::try_from_flag.

The type returned in the event of a conversion error.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
Converts the given value to a String. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.