Add ValueAccessError to MongoError

pull/9/head
Thijs Cadier 9 years ago
parent c5dce56e0d
commit 0b61492889

@ -3,7 +3,7 @@ use std::fmt;
use std::borrow::Cow; use std::borrow::Cow;
use std::ffi::CStr; use std::ffi::CStr;
use bson::{DecoderError,EncoderError}; use bson::{DecoderError,EncoderError,ValueAccessError};
use mongo_c_driver_wrapper::bindings; use mongo_c_driver_wrapper::bindings;
@ -11,6 +11,7 @@ pub enum MongoError {
Bsonc(BsoncError), Bsonc(BsoncError),
Decoder(DecoderError), Decoder(DecoderError),
Encoder(EncoderError), Encoder(EncoderError),
ValueAccessError(ValueAccessError),
InvalidParams(InvalidParamsError) InvalidParams(InvalidParamsError)
} }
@ -20,6 +21,7 @@ impl fmt::Display for MongoError {
MongoError::Bsonc(ref err) => write!(f, "{}", err), MongoError::Bsonc(ref err) => write!(f, "{}", err),
MongoError::Encoder(ref err) => write!(f, "{}", err), MongoError::Encoder(ref err) => write!(f, "{}", err),
MongoError::Decoder(ref err) => write!(f, "{}", err), MongoError::Decoder(ref err) => write!(f, "{}", err),
MongoError::ValueAccessError(ref err) => write!(f, "{}", err),
MongoError::InvalidParams(ref err) => write!(f, "{}", err) MongoError::InvalidParams(ref err) => write!(f, "{}", err)
} }
} }
@ -31,6 +33,7 @@ impl fmt::Debug for MongoError {
MongoError::Bsonc(ref err) => write!(f, "MongoError ({:?})", err), MongoError::Bsonc(ref err) => write!(f, "MongoError ({:?})", err),
MongoError::Decoder(ref err) => write!(f, "MongoError ({:?})", err), MongoError::Decoder(ref err) => write!(f, "MongoError ({:?})", err),
MongoError::Encoder(ref err) => write!(f, "MongoError ({:?})", err), MongoError::Encoder(ref err) => write!(f, "MongoError ({:?})", err),
MongoError::ValueAccessError(ref err) => write!(f, "MongoError ({:?})", err),
MongoError::InvalidParams(ref err) => write!(f, "MongoError ({:?})", err) MongoError::InvalidParams(ref err) => write!(f, "MongoError ({:?})", err)
} }
} }
@ -42,6 +45,7 @@ impl error::Error for MongoError {
MongoError::Bsonc(ref err) => err.description(), MongoError::Bsonc(ref err) => err.description(),
MongoError::Decoder(ref err) => err.description(), MongoError::Decoder(ref err) => err.description(),
MongoError::Encoder(ref err) => err.description(), MongoError::Encoder(ref err) => err.description(),
MongoError::ValueAccessError(ref err) => err.description(),
MongoError::InvalidParams(ref err) => err.description() MongoError::InvalidParams(ref err) => err.description()
} }
} }
@ -51,6 +55,7 @@ impl error::Error for MongoError {
MongoError::Bsonc(ref err) => Some(err), MongoError::Bsonc(ref err) => Some(err),
MongoError::Decoder(ref err) => Some(err), MongoError::Decoder(ref err) => Some(err),
MongoError::Encoder(ref err) => Some(err), MongoError::Encoder(ref err) => Some(err),
MongoError::ValueAccessError(ref err) => Some(err),
MongoError::InvalidParams(ref err) => Some(err) MongoError::InvalidParams(ref err) => Some(err)
} }
} }
@ -68,6 +73,12 @@ impl From<EncoderError> for MongoError {
} }
} }
impl From<ValueAccessError> for MongoError {
fn from(error: ValueAccessError) -> MongoError {
MongoError::ValueAccessError(error)
}
}
pub struct BsoncError { pub struct BsoncError {
inner: bindings::bson_error_t, inner: bindings::bson_error_t,
} }

Loading…
Cancel
Save