toasty_core/stmt/
value_jiff.rs1use crate::stmt::Value;
2
3macro_rules! impl_jiff_conversions {
4 ($jiff:ty, $name:ident, $lit:literal) => {
5 impl From<$jiff> for Value {
6 fn from(value: $jiff) -> Self {
7 Self::$name(value)
8 }
9 }
10
11 impl TryFrom<Value> for $jiff {
12 type Error = crate::Error;
13
14 fn try_from(value: Value) -> Result<Self, Self::Error> {
15 match value {
16 Value::$name(value) => Ok(value),
17 _ => Err(crate::Error::type_conversion(value, $lit)),
18 }
19 }
20 }
21 };
22}
23
24impl_jiff_conversions!(jiff::Timestamp, Timestamp, "Timestamp");
25impl_jiff_conversions!(jiff::Zoned, Zoned, "Zoned");
26impl_jiff_conversions!(jiff::civil::Date, Date, "Date");
27impl_jiff_conversions!(jiff::civil::Time, Time, "Time");
28impl_jiff_conversions!(jiff::civil::DateTime, DateTime, "DateTime");