Trait rustc_serialize::Encodable
[−]
[src]
pub trait Encodable { fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>; }
Trait for serializing a type.
This can be implemented for custom data types to allow them to be encoded
with Encoder
implementations. Most of Rust's built-in or standard data
types (like i32
and Vec<T>
) have Encodable
implementations provided by
this module.
Note that, in general, you should let the compiler implement this for you by
using the derive(RustcEncodable)
attribute.
Examples
extern crate rustc_serialize; #[derive(RustcEncodable)] struct Point { x: i32, y: i32, }
This generates code equivalent to:
extern crate rustc_serialize; use rustc_serialize::Encodable; use rustc_serialize::Encoder; struct Point { x: i32, y: i32, } impl Encodable for Point { fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error> { s.emit_struct("Point", 2, |s| { try!(s.emit_struct_field("x", 0, |s| { s.emit_i32(self.x) })); try!(s.emit_struct_field("y", 1, |s| { s.emit_i32(self.y) })); Ok(()) }) } }
Required Methods
Implementors
impl Encodable for usize
impl Encodable for u8
impl Encodable for u16
impl Encodable for u32
impl Encodable for u64
impl Encodable for isize
impl Encodable for i8
impl Encodable for i16
impl Encodable for i32
impl Encodable for i64
impl Encodable for str
impl Encodable for String
impl Encodable for f32
impl Encodable for f64
impl Encodable for bool
impl Encodable for char
impl Encodable for ()
impl<'a, T: ?Sized + Encodable> Encodable for &'a T
impl<T: ?Sized + Encodable> Encodable for Box<T>
impl<T: Encodable> Encodable for Rc<T>
impl<'a, T: Encodable + ToOwned + ?Sized> Encodable for Cow<'a, T>
impl<T: Encodable> Encodable for [T]
impl<T: Encodable> Encodable for Vec<T>
impl<T: Encodable> Encodable for Option<T>
impl<T: Encodable, E: Encodable> Encodable for Result<T, E>
impl<T> Encodable for PhantomData<T>
impl<T0: Encodable, T1: Encodable, T2: Encodable, T3: Encodable, T4: Encodable, T5: Encodable, T6: Encodable, T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T1: Encodable, T2: Encodable, T3: Encodable, T4: Encodable, T5: Encodable, T6: Encodable, T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T2: Encodable, T3: Encodable, T4: Encodable, T5: Encodable, T6: Encodable, T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T3: Encodable, T4: Encodable, T5: Encodable, T6: Encodable, T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T3, T4, T5, T6, T7, T8, T9, T10, T11)
impl<T4: Encodable, T5: Encodable, T6: Encodable, T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T4, T5, T6, T7, T8, T9, T10, T11)
impl<T5: Encodable, T6: Encodable, T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T5, T6, T7, T8, T9, T10, T11)
impl<T6: Encodable, T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T6, T7, T8, T9, T10, T11)
impl<T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T7, T8, T9, T10, T11)
impl<T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T8, T9, T10, T11)
impl<T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T9, T10, T11)
impl<T10: Encodable, T11: Encodable> Encodable for (T10, T11)
impl<T11: Encodable> Encodable for (T11,)
impl<T: Encodable> Encodable for [T; 32]
impl<T: Encodable> Encodable for [T; 31]
impl<T: Encodable> Encodable for [T; 30]
impl<T: Encodable> Encodable for [T; 29]
impl<T: Encodable> Encodable for [T; 28]
impl<T: Encodable> Encodable for [T; 27]
impl<T: Encodable> Encodable for [T; 26]
impl<T: Encodable> Encodable for [T; 25]
impl<T: Encodable> Encodable for [T; 24]
impl<T: Encodable> Encodable for [T; 23]
impl<T: Encodable> Encodable for [T; 22]
impl<T: Encodable> Encodable for [T; 21]
impl<T: Encodable> Encodable for [T; 20]
impl<T: Encodable> Encodable for [T; 19]
impl<T: Encodable> Encodable for [T; 18]
impl<T: Encodable> Encodable for [T; 17]
impl<T: Encodable> Encodable for [T; 16]
impl<T: Encodable> Encodable for [T; 15]
impl<T: Encodable> Encodable for [T; 14]
impl<T: Encodable> Encodable for [T; 13]
impl<T: Encodable> Encodable for [T; 12]
impl<T: Encodable> Encodable for [T; 11]
impl<T: Encodable> Encodable for [T; 10]
impl<T: Encodable> Encodable for [T; 9]
impl<T: Encodable> Encodable for [T; 8]
impl<T: Encodable> Encodable for [T; 7]
impl<T: Encodable> Encodable for [T; 6]
impl<T: Encodable> Encodable for [T; 5]
impl<T: Encodable> Encodable for [T; 4]
impl<T: Encodable> Encodable for [T; 3]
impl<T: Encodable> Encodable for [T; 2]
impl<T: Encodable> Encodable for [T; 1]
impl<T: Encodable> Encodable for [T; 0]
impl Encodable for Path
impl Encodable for PathBuf
impl<T: Encodable + Copy> Encodable for Cell<T>
impl<T: Encodable> Encodable for RefCell<T>
impl<T: Encodable> Encodable for Arc<T>
impl<T: Encodable> Encodable for LinkedList<T>
impl<T: Encodable> Encodable for VecDeque<T>
impl<K: Encodable + Ord, V: Encodable> Encodable for BTreeMap<K, V>
impl<T: Encodable + Ord> Encodable for BTreeSet<T>
impl<K, V> Encodable for HashMap<K, V> where K: Encodable + Hash + Eq, V: Encodable
impl<T> Encodable for HashSet<T> where T: Encodable + Hash + Eq
impl Encodable for Json