pub enum Symbol {
Char(char),
SimpleEscape(u8),
DecimalEscape(u8),
}
Expand description
The zone file representation of a single character.
This is either a regular character or an escape sequence. See the variants for more details.
Variants§
Char(char)
An unescaped Unicode character.
SimpleEscape(u8)
A character escaped via a preceding backslash.
This escape sequence is only allowed for printable ASCII characters.
DecimalEscape(u8)
A raw octet escaped using the decimal escape sequence.
This escape sequence consists of a backslash followed by exactly three decimal digits with the value of the octets.
Implementations§
source§impl Symbol
impl Symbol
sourcepub fn from_chars<C: Iterator<Item = char>>(
chars: &mut C
) -> Result<Option<Self>, SymbolCharsError>
pub fn from_chars<C: Iterator<Item = char>>( chars: &mut C ) -> Result<Option<Self>, SymbolCharsError>
Reads a symbol from a character source.
Returns the next symbol in the source, Ok(None)
if the source has
been exhausted, or an error if there wasn’t a valid symbol.
sourcepub fn from_slice_index(
octets: &[u8],
pos: usize
) -> Result<Option<(Symbol, usize)>, SymbolOctetsError>
pub fn from_slice_index( octets: &[u8], pos: usize ) -> Result<Option<(Symbol, usize)>, SymbolOctetsError>
Reads a symbol from the given position in an octets slice.
Returns the symbol and the index of the end of the symbol in the slice.
sourcepub fn from_octet(ch: u8) -> Self
pub fn from_octet(ch: u8) -> Self
Provides the best symbol for an octet.
The function will use the simple escape sequence for octet values that represent ASCII spaces, quotes, backslashes, and semicolons and the plain ASCII value for all other printable ASCII characters. Any other value is escaped using the decimal escape sequence.
sourcepub fn into_octet(self) -> Result<u8, BadSymbol>
pub fn into_octet(self) -> Result<u8, BadSymbol>
Converts the symbol into an octet if it represents one.
Both domain names and character strings operate on bytes instead of (Unicode) characters. These bytes can be represented by printable ASCII characters (that is, U+0020 to U+007E), both plain or through a simple escape, or by a decimal escape.
This method returns such an octet or an error if the symbol doesn’t have value representing an octet. Note that it will succeed for an ASCII space character U+0020 which may be used as a word separator in some cases.
sourcepub fn into_ascii(self) -> Result<u8, BadSymbol>
pub fn into_ascii(self) -> Result<u8, BadSymbol>
Converts the symbol into an octet if it is printable ASCII.
This is similar to into_octet
but returns an
error when the resulting octet is not a printable ASCII character,
i.e., an octet of value 0x20 up to and including 0x7E.
sourcepub fn into_char(self) -> Result<char, BadSymbol>
pub fn into_char(self) -> Result<char, BadSymbol>
Converts the symbol into a char
.
This will fail for a decimal escape sequence which doesn’t actually represent a character.
sourcepub fn into_digit(self, base: u32) -> Result<u32, BadSymbol>
pub fn into_digit(self, base: u32) -> Result<u32, BadSymbol>
Converts the symbol representing a digit into its integer value.
sourcepub fn is_word_char(self) -> bool
pub fn is_word_char(self) -> bool
Returns whether the symbol can occur as part of a word.
This is true for all symbols other than unescaped ASCII space and horizontal tabs, opening and closing parentheses, semicolon, and double quote.