Macro nbt_lib::convert_list_to
source · macro_rules! convert_list_to { ($data:expr, $t:ty) => { ... }; ($data:expr, $name:expr, $t:ty) => { ... }; }
Expand description
Converts a list of [NbtValue]s to a vector of a specified type.
§Examples
use nbt_lib::{convert_list_to, 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: Vec<Data> = convert_list_to!(data, Data);
Ok(result)
}
assert_eq!(test(), Ok(vec![Data(1), Data(2)]));§Errors
Returns an error if the option is None or if the conversion fails.