Enum spinoso_string::Encoding[][src]

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 !=.

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

Performs the conversion.

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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.