pub trait Encodable {
    // Required method
    fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>;
}
Expand description

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§

source

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

Serialize a value using an Encoder.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Encodable for bool

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for char

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for f32

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for f64

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for i8

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for i16

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for i32

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for i64

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for isize

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for str

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for u8

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for u16

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for u32

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for u64

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for ()

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for usize

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for String

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl Encodable for Path

source§

fn encode<S: Encoder>(&self, e: &mut S) -> Result<(), S::Error>

source§

impl Encodable for PathBuf

source§

fn encode<S: Encoder>(&self, e: &mut S) -> Result<(), S::Error>

source§

impl<'a, T: Encodable + ToOwned + ?Sized> Encodable for Cow<'a, T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<'a, T: ?Sized + Encodable> Encodable for &'a T

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<K, V> Encodable for HashMap<K, V>where K: Encodable + Hash + Eq, V: Encodable,

source§

fn encode<E: Encoder>(&self, e: &mut E) -> Result<(), E::Error>

source§

impl<K: Encodable + Ord, V: Encodable> Encodable for BTreeMap<K, V>

source§

fn encode<S: Encoder>(&self, e: &mut S) -> Result<(), S::Error>

source§

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)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

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)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

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)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

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)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

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)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T5: Encodable, T6: Encodable, T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T5, T6, T7, T8, T9, T10, T11)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T6: Encodable, T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T6, T7, T8, T9, T10, T11)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T7: Encodable, T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T7, T8, T9, T10, T11)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T8: Encodable, T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T8, T9, T10, T11)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T9: Encodable, T10: Encodable, T11: Encodable> Encodable for (T9, T10, T11)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T10: Encodable, T11: Encodable> Encodable for (T10, T11)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T11: Encodable> Encodable for (T11,)

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T> Encodable for PhantomData<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T> Encodable for HashSet<T>where T: Encodable + Hash + Eq,

source§

fn encode<E: Encoder>(&self, s: &mut E) -> Result<(), E::Error>

source§

impl<T: Encodable + Ord> Encodable for BTreeSet<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable + Copy> Encodable for Cell<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for Option<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 0]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 1]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 2]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 3]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 4]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 5]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 6]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 7]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 8]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 9]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 10]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 11]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 12]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 13]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 14]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 15]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 16]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 17]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 18]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 19]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 20]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 21]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 22]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 23]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 24]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 25]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 26]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 27]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 28]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 29]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 30]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 31]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T; 32]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for [T]

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for LinkedList<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for VecDeque<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for Rc<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for Arc<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for Vec<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable> Encodable for RefCell<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: Encodable, E: Encodable> Encodable for Result<T, E>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

source§

impl<T: ?Sized + Encodable> Encodable for Box<T>

source§

fn encode<S: Encoder>(&self, s: &mut S) -> Result<(), S::Error>

Implementors§