Skip to content

Instantly share code, notes, and snippets.

@vext01
Created February 13, 2019 15:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save vext01/838d9e589363327500e4bce3b32a4c74 to your computer and use it in GitHub Desktop.
Save vext01/838d9e589363327500e4bce3b32a4c74 to your computer and use it in GitHub Desktop.
#[macro_use]
extern crate serde_derive;
use serde::{Serialize, Deserialize};
use std::io::{Cursor, Seek, SeekFrom};
use rmp_serde::{
Serializer, Deserializer
};
#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)]
enum MetaData {
Mir,
}
fn main() {
let buf: Vec<u8> = Vec::new();
let mut curs = Cursor::new(buf);
let mut ser = Serializer::new(&mut curs);
let to_ser: Option<MetaData> = Some(MetaData::Mir);
//let to_ser: MetaData = MetaData::Mir;
to_ser.serialize(&mut ser).unwrap();
curs.seek(SeekFrom::Start(0)).unwrap();
let mut deser = Deserializer::new(&mut curs);
println!("DECODE");
let res = Option::<MetaData>::deserialize(&mut deser).unwrap();
//let res = MetaData:deserialize(&mut deser).unwrap();
println!("DECODE");
println!("{:?}", res);
}
Running `target/debug/rmp_test`
DECODE
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: TypeMismatch(FixPos(0))', libcore/result.rs:1009:5
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment