pub trait Encode {
// Required method
fn encode(&self, buf: &mut Vec<u8>);
// Provided method
fn stringify(&self) -> String { ... }
}Expand description
Encode Trait
This trait is used for formatting a field’s value. Encoding support has already been added for all scalar types and many standard collections. If you wish to format your own type, just implement this trait.
pub struct CustomStruct {
pub key1: i32,
pub key2: bool,
pub key3: String,
}
impl logkit::Encode for CustomStruct {
#[inline]
fn encode(&self, buf: &mut Vec<u8>) {
// format your struct into buf
unimplemented!()
}
}The Encode Trait
Required Methods§
Provided Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl Encode for &str
Encode Str
impl Encode for &str
Encode Str
use encoder::json::Encode;
assert_eq!("Hello".stringify(), r#""Hello""#);
assert_eq!("Bonjour".stringify(), r#""Bonjour""#);
assert_eq!("你好".stringify(), r#""你好""#);
assert_eq!("こんにちは".stringify(), r#""こんにちは""#);
assert_eq!("สวัสดี".stringify(), r#""สวัสดี""#);
let mut buf = vec![];
"Hello".encode(&mut buf);
"Bonjour".encode(&mut buf);
"你好".encode(&mut buf);
"こんにちは".encode(&mut buf);
"สวัสดี".encode(&mut buf);
assert_eq!(String::from_utf8_lossy(&buf), r#""Hello""Bonjour""你好""こんにちは""สวัสดี""#);Source§impl Encode for Option<&dyn Encode>
Encode Option 2
impl Encode for Option<&dyn Encode>
Encode Option 2
use encoder::json::Encode;
let mut buf = vec![];
let mut opt: Option<&dyn Encode> = Some(&1);
opt.encode(&mut buf);
opt = None;
opt.encode(&mut buf);
assert_eq!(opt.stringify(), r#"null"#);
assert_eq!(String::from_utf8_lossy(&buf), r#"1null"#);Source§impl Encode for String
Encode String
impl Encode for String
Encode String
use encoder::json::Encode;
assert_eq!(String::from("\"\\/\n\r\t").stringify(), r#""\"\\/\n\r\t""#);
let mut buf = vec![];
String::from("\"\\/\n\r\t").encode(&mut buf);
assert_eq!(String::from_utf8_lossy(&buf), r#""\"\\/\n\r\t""#);Source§impl Encode for char
Encode Char
impl Encode for char
Encode Char
use encoder::json::Encode;
assert_eq!('a'.stringify(), r#""a""#);
assert_eq!('b'.stringify(), r#""b""#);
assert_eq!('c'.stringify(), r#""c""#);
let mut buf = vec![];
'a'.encode(&mut buf);
'b'.encode(&mut buf);
'c'.encode(&mut buf);
assert_eq!(String::from_utf8_lossy(&buf), r#""a""b""c""#);Source§impl<T> Encode for Option<T>where
T: Encode,
Encode Option 1
impl<T> Encode for Option<T>where
T: Encode,
Encode Option 1
use encoder::json::Encode;
let mut buf = vec![];
let mut opt = Some(1);
opt.encode(&mut buf);
opt = None;
opt.encode(&mut buf);
assert_eq!(opt.stringify(), r#"null"#);
assert_eq!(String::from_utf8_lossy(&buf), r#"1null"#);