mirror of
https://github.com/mbilker/kbinxml-rs.git
synced 2026-09-09 19:15:27 -05:00
value: add as_i16, as_u16, as_i64, and as_u64 helper methods
This commit is contained in:
@@ -503,6 +503,20 @@ macro_rules! construct_types {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn as_i16(&self) -> Result<i16, KbinError> {
|
||||
match self {
|
||||
Value::S16(ref n) => Ok(*n),
|
||||
value => Err(KbinErrorKind::ValueTypeMismatch(StandardType::S16, value.clone()).into()),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn as_u16(&self) -> Result<u16, KbinError> {
|
||||
match self {
|
||||
Value::U16(ref n) => Ok(*n),
|
||||
value => Err(KbinErrorKind::ValueTypeMismatch(StandardType::U16, value.clone()).into()),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn as_i32(&self) -> Result<i32, KbinError> {
|
||||
match self {
|
||||
Value::S32(ref n) => Ok(*n),
|
||||
@@ -517,6 +531,20 @@ macro_rules! construct_types {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn as_i64(&self) -> Result<i64, KbinError> {
|
||||
match self {
|
||||
Value::S64(ref n) => Ok(*n),
|
||||
value => Err(KbinErrorKind::ValueTypeMismatch(StandardType::S64, value.clone()).into()),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn as_u64(&self) -> Result<u64, KbinError> {
|
||||
match self {
|
||||
Value::U64(ref n) => Ok(*n),
|
||||
value => Err(KbinErrorKind::ValueTypeMismatch(StandardType::U64, value.clone()).into()),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn as_slice(&self) -> Result<&[u8], KbinError> {
|
||||
match self {
|
||||
Value::Binary(ref data) => Ok(data),
|
||||
|
||||
Reference in New Issue
Block a user