1+ #[ cfg( feature = "builders" ) ]
2+ use bon:: Builder ;
13use chrono:: { DateTime , TimeDelta , TimeZone , Utc } ;
24use serde:: {
35 de:: { Deserializer , Error as DeError } ,
@@ -8,6 +10,7 @@ use std::ops::{Deref, DerefMut};
810
911/// Timestamp with millisecond precision.
1012#[ non_exhaustive]
13+ #[ cfg_attr( feature = "builders" , derive( Builder ) ) ]
1114#[ derive( Clone , Default , Debug , Deserialize , Eq , PartialEq , Serialize ) ]
1215pub struct MillisecondTimestamp (
1316 #[ serde( deserialize_with = "deserialize_milliseconds" ) ]
@@ -31,6 +34,7 @@ impl DerefMut for MillisecondTimestamp {
3134
3235/// Timestamp with second precision.
3336#[ non_exhaustive]
37+ #[ cfg_attr( feature = "builders" , derive( Builder ) ) ]
3438#[ derive( Clone , Debug , Default , Deserialize , Eq , PartialEq , Serialize ) ]
3539pub struct SecondTimestamp (
3640 #[ serde( deserialize_with = "deserialize_seconds" ) ]
@@ -54,6 +58,7 @@ impl DerefMut for SecondTimestamp {
5458
5559/// Duration with second precision.
5660#[ non_exhaustive]
61+ #[ cfg_attr( feature = "builders" , derive( Builder ) ) ]
5762#[ derive( Clone , Debug , Deserialize , Eq , PartialEq , Serialize ) ]
5863pub struct SecondDuration (
5964 #[ serde( deserialize_with = "deserialize_duration_seconds" ) ]
@@ -77,6 +82,7 @@ impl DerefMut for SecondDuration {
7782
7883/// Duration with minute precision.
7984#[ non_exhaustive]
85+ #[ cfg_attr( feature = "builders" , derive( Builder ) ) ]
8086#[ derive( Clone , Default , Debug , Deserialize , Eq , PartialEq , Serialize ) ]
8187pub struct MinuteDuration (
8288 #[ serde( deserialize_with = "deserialize_duration_minutes" ) ]
0 commit comments