sea_orm/value/
with_chrono.rs1use super::impl_timestamp;
2use crate as sea_orm;
3use crate::{DbErr, TryGetError, prelude::ChronoDateTimeUtc};
4use std::ops::{Deref, DerefMut};
5
6#[derive(derive_more::Debug, Copy, Clone, PartialEq, Eq, Hash)]
8#[debug("{_0:?}")]
9pub struct ChronoUnixTimestamp(pub ChronoDateTimeUtc);
10
11#[derive(derive_more::Debug, Copy, Clone, PartialEq, Eq, Hash)]
13#[debug("{_0:?}")]
14pub struct ChronoUnixTimestampMillis(pub ChronoDateTimeUtc);
15
16impl_timestamp!(
17 ChronoUnixTimestamp,
18 ChronoDateTimeUtc,
19 from_timestamp,
20 to_timestamp
21);
22
23impl_timestamp!(
24 ChronoUnixTimestampMillis,
25 ChronoDateTimeUtc,
26 from_timestamp_millis,
27 to_timestamp_millis
28);
29
30fn from_timestamp(ts: i64) -> Option<ChronoUnixTimestamp> {
31 ChronoDateTimeUtc::from_timestamp(ts, 0).map(ChronoUnixTimestamp)
32}
33
34fn to_timestamp(ts: ChronoUnixTimestamp) -> i64 {
35 ts.0.timestamp()
36}
37
38fn from_timestamp_millis(ts: i64) -> Option<ChronoUnixTimestampMillis> {
39 ChronoDateTimeUtc::from_timestamp_millis(ts).map(ChronoUnixTimestampMillis)
40}
41
42fn to_timestamp_millis(ts: ChronoUnixTimestampMillis) -> i64 {
43 ts.0.timestamp_millis()
44}