Enum zalgo_codec_common::Error
source · pub enum Error {
UnencodableAscii(u8, usize, usize, &'static str),
NotAscii(u8, usize, usize),
}
Expand description
The error returned by zalgo_encode
, ZalgoString::new
, and zalgo_wrap_python
if they encounter a byte they can not encode.
Only implements the Error
trait if the std
feature is enabled.
Variants§
UnencodableAscii(u8, usize, usize, &'static str)
Represents a valid ASCII character that is outside of the encodable set.
The first u8
in the variant is the byte value of the character, the first usize
is the 1-indexed line number where the character occured, the second usize
is
the 1-indexed column in which the character occured and the &str
is a description
of the character.
NotAscii(u8, usize, usize)
Represents some other character.
The two usize
s represent the same thing as in the UnencodableAscii
variant,
but the u8
is only the first byte of the character.
Implementations§
source§impl Error
impl Error
sourcepub const fn line(&self) -> usize
pub const fn line(&self) -> usize
Returns the 1-indexed line number of the line on which the unencodable byte occured.
Examples
assert_eq!(zalgo_encode("❤️").err().map(|e| e.line()), Some(1));
assert_eq!(zalgo_encode("a\nb\nc\r\n").err().map(|e| e.line()), Some(3));
sourcepub const fn column(&self) -> usize
pub const fn column(&self) -> usize
Returns the 1-indexed column where the unencodable byte occured. Columns are counted from left to right and the count resets for each new line.
Example
assert_eq!(zalgo_encode("I ❤️ 🎂").err().map(|e| e.column()), Some(3));
assert_eq!(zalgo_encode("I\n❤️\n🎂").err().map(|e|e.column()), Some(1));
sourcepub const fn byte(&self) -> u8
pub const fn byte(&self) -> u8
Returns the value of the first byte of the unencodable character.
Examples
assert_eq!(zalgo_encode("\r").err().map(|e| e.byte()), Some(13));
Note that this might not be the complete representation of the character in unicode, just the first byte of it.
assert_eq!(zalgo_encode("❤️").err().map(|e| e.byte()), Some(226));
// Even though
assert_eq!("❤️".as_bytes(), &[226, 157, 164, 239, 184, 143])
sourcepub const fn representation(&self) -> Option<&'static str>
pub const fn representation(&self) -> Option<&'static str>
Return a representation of the unencodable byte. This exists if the character is an unencodable ASCII character. If it is some other unicode character we only know its first byte, so we can not accurately represent it.
Examples
assert_eq!(zalgo_encode("\r").err().map(|e| e.representation()).flatten(), Some("Carriage Return"));
assert_eq!(zalgo_encode("❤️").err().map(|e| e.representation()).flatten(), None);