Macro nbt_lib::convert_list_to_result
source · macro_rules! convert_list_to_result { ($data:expr, $t:ty) => { ... }; }
Expand description
Converts a list of [NbtValue]s to a Result with a vector of a specified type or an error.
§Examples
use nbt_lib::{convert_list_to_result, NbtValue, traits::FromNbtValue};
#[derive(Debug, PartialEq)]
struct Data(i32);
impl FromNbtValue for Data {
fn from_nbt_value(value: NbtValue) -> Result<Self, ()> {
match value {
NbtValue::Int(v) => Ok(Data(v)),
_ => Err(()),
}
}
}
fn test() -> Result<Vec<Data>, ()> {
let data: Option<NbtValue> = Some(NbtValue::List(vec![NbtValue::Int(1), NbtValue::Int(2)]));
let result: Result<Vec<Data>, ()> = convert_list_to_result!(data, Data);
result
}
assert_eq!(test(), Ok(vec![Data(1), Data(2)]));§Errors
Returns an error if the option is None or if the conversion fails.