1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
//#[allow(clippy::cast_sign_loss)]
//#[allow(clippy::cast_precision_loss)]
//#[allow(clippy::cast_possible_truncation)]
//impl ValueConvert for Value {
//fn as_nanos(&self) -> EvaResult<u64> {
//match self {
//Value::U8(v) => Ok(u64::from(*v) * 1_000_000_000_u64),
//Value::U16(v) => Ok(u64::from(*v) * 1_000_000_000_u64),
//Value::U32(v) => Ok(u64::from(*v) * 1_000_000_000_u64),
//Value::U64(v) => Ok(v * 1_000_000_000_u64),
//TODO check f32 for negative and return errors
//Value::F32(v) => Ok((f64::from(*v) * 1_000_000_000_f64) as u64),
//Value::F64(v) => Ok((v * 1_000_000_000_f64) as u64),
//_ => Err(EvaError::invalid_data("Invalid value")),
//TODO parse string
//}
//}
//fn as_u64(&self) -> EvaResult<u64> {
//match self {
//Value::F32(v) => Ok(*v as u64),
//Value::F64(v) => Ok(*v as u64),
//Value::U8(v) => Ok(u64::from(*v)),
//Value::U16(v) => Ok(u64::from(*v)),
//Value::U32(v) => Ok(u64::from(*v)),
//Value::U64(v) => Ok(*v as u64),
//Value::I8(v) => Ok(*v as u64),
//Value::I16(v) => Ok(*v as u64),
//Value::I32(v) => Ok(*v as u64),
//Value::I64(v) => Ok(*v as u64),
//TODO parse string
//_ => Err(EvaError::invalid_data("Invalid value")),
//}
//}
//}