Merge branch 'master' of github.com:TyOverby/bincode

This commit is contained in:
Ty Overby 2016-02-07 16:46:33 -08:00
commit 05850df34a
4 changed files with 29 additions and 11 deletions

View File

@ -1,6 +1,9 @@
language: rust
rust:
- stable
- beta
- nightly
after_success: |
[ $TRAVIS_BRANCH = master ] &&
[ $TRAVIS_PULL_REQUEST = false ] &&
@ -12,3 +15,7 @@ after_success: |
env:
global:
- secure: SZSxNqg9wiGx8EnJhifJ2kb/aCRcLim9TzTQyfurPqd8qVGkDOeVjTtbs+VTxLVXYtMJAz+YYnrQDwsu8kc/uYpQajU+gRMqNGEP5gNj3Ha5iNGDasAS6piIHQSMROayZ+D9g22nlGnjk8t9eZtLHC/Z8IWMCnjcIHvqMFY6cgI=
matrix:
allow_failures:
- rust: stable
- rust: beta

View File

@ -12,7 +12,7 @@ description = "A binary serialization / deserialization strategy and implementat
[dependencies]
rustc-serialize = "0.3.*"
byteorder = "0.3.*"
byteorder = "0.4.*"
num = "*"
serde = "*"

View File

@ -46,7 +46,7 @@ pub enum DeserializeError {
/// If decoding a message takes more than the provided size limit, this
/// error is returned.
SizeLimit,
SyntaxError,
SyntaxError(String),
EndOfStreamError,
UnknownFieldError,
MissingFieldError,
@ -58,7 +58,7 @@ impl Error for DeserializeError {
DeserializeError::IoError(ref err) => Error::description(err),
DeserializeError::InvalidEncoding(ref ib) => ib.desc,
DeserializeError::SizeLimit => "the size limit for decoding has been reached",
DeserializeError::SyntaxError => "syntax error",
DeserializeError::SyntaxError(ref s) => &*s,
DeserializeError::EndOfStreamError => "Unexpected EOF while reading a multi-byte number",
DeserializeError::UnknownFieldError => "unknown field error",
DeserializeError::MissingFieldError => "missing field error",
@ -70,7 +70,7 @@ impl Error for DeserializeError {
DeserializeError::IoError(ref err) => err.cause(),
DeserializeError::InvalidEncoding(_) => None,
DeserializeError::SizeLimit => None,
DeserializeError::SyntaxError => None,
DeserializeError::SyntaxError(_) => None,
DeserializeError::EndOfStreamError => None,
DeserializeError::UnknownFieldError => None,
DeserializeError::MissingFieldError => None,
@ -98,7 +98,7 @@ impl From<serde::de::value::Error> for DeserializeError {
use serde_crate::de::value::Error;
match err {
Error::SyntaxError => DeserializeError::SyntaxError,
Error::SyntaxError => DeserializeError::SyntaxError("syntax error".to_string()),
Error::EndOfStreamError => {
DeserializeError::EndOfStreamError
}
@ -117,8 +117,8 @@ impl fmt::Display for DeserializeError {
write!(fmt, "InvalidEncoding: {}", ib),
DeserializeError::SizeLimit =>
write!(fmt, "SizeLimit"),
DeserializeError::SyntaxError =>
write!(fmt, "SyntaxError"),
DeserializeError::SyntaxError(ref d) =>
write!(fmt, "SyntaxError: {}", d),
DeserializeError::EndOfStreamError =>
write!(fmt, "EndOfStreamError"),
DeserializeError::UnknownFieldError =>
@ -130,8 +130,8 @@ impl fmt::Display for DeserializeError {
}
impl serde::de::Error for DeserializeError {
fn syntax(_: &str) -> DeserializeError {
DeserializeError::SyntaxError
fn syntax(desc: &str) -> DeserializeError {
DeserializeError::SyntaxError(desc.into())
}
fn end_of_stream() -> DeserializeError {

View File

@ -1,4 +1,4 @@
#![feature(plugin, custom_derive)]
#![feature(plugin, custom_derive, custom_attribute)]
#![plugin(serde_macros)]
extern crate bincode;
@ -243,7 +243,7 @@ fn deserializing_errors() {
fn isize_invalid_deserialize<T: Debug>(res: DeserializeResult<T>) {
match res {
Err(DeserializeError::InvalidEncoding(_)) => {},
Err(DeserializeError::SyntaxError) => {},
Err(DeserializeError::SyntaxError(_)) => {},
_ => panic!("Expecting InvalidEncoding, got {:?}", res),
}
}
@ -475,3 +475,14 @@ fn test_multi_strings_encode() {
fn test_multi_strings_serialize() {
assert!(serialize(&("foo", "bar", "baz"), Infinite).is_ok());
}
/*
#[test]
fn path_buf() {
use std::path::{Path, PathBuf};
let path = Path::new("foo").to_path_buf();
let serde_encoded = bincode::serde::serialize(&path, Infinite).unwrap();
let decoded: PathBuf = bincode::serde::deserialize(&serde_encoded).unwrap();
assert!(path.to_str() == decoded.to_str());
}
*/