summaryrefslogtreecommitdiffstats
path: root/src/builder.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/builder.rs')
-rw-r--r--src/builder.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/builder.rs b/src/builder.rs
index ea9bd32..cb924ac 100644
--- a/src/builder.rs
+++ b/src/builder.rs
@@ -1190,6 +1190,20 @@ impl LogsOptionsBuilder {
self
}
+ #[cfg(feature = "chrono")]
+ pub fn since<Tz>(
+ &mut self,
+ timestamp: &chrono::DateTime<Tz>,
+ ) -> &mut Self
+ where
+ Tz: chrono::TimeZone,
+ {
+ self.params
+ .insert("since", timestamp.timestamp().to_string());
+ self
+ }
+
+ #[cfg(not(feature = "chrono"))]
pub fn since(
&mut self,
timestamp: i64,
@@ -1712,6 +1726,32 @@ mod tests {
);
}
+ #[cfg(feature = "chrono")]
+ #[test]
+ fn logs_options() {
+ let timestamp = chrono::NaiveDateTime::from_timestamp(2_147_483_647, 0);
+ let since = chrono::DateTime::<chrono::Utc>::from_utc(timestamp, chrono::Utc);
+
+ let options = LogsOptionsBuilder::default()
+ .follow(true)
+ .stdout(true)
+ .stderr(true)
+ .timestamps(true)
+ .tail("all")
+ .since(&since)
+ .build();
+
+ let serialized = options.serialize().unwrap();
+
+ assert!(serialized.contains("follow=true"));
+ assert!(serialized.contains("stdout=true"));
+ assert!(serialized.contains("stderr=true"));
+ assert!(serialized.contains("timestamps=true"));
+ assert!(serialized.contains("tail=all"));
+ assert!(serialized.contains("since=2147483647"));
+ }
+
+ #[cfg(not(feature = "chrono"))]
#[test]
fn logs_options() {
let options = LogsOptionsBuilder::default()