From 4077c33adfdacaf0ed68657a1955a7b69a78d373 Mon Sep 17 00:00:00 2001 From: Vlad Stepanov <8uk.8ak@gmail.com> Date: Thu, 15 Jun 2023 14:29:40 +0400 Subject: Builder interface for History objects (#933) * [feature] store env variables in History records WIP: remove `HistoryWithoutDelete`, add some docstrings, tests * Create History objects through builders. Assure in compile-time that all required fields are set for the given construction scenario * (from #882) split Cmd::run into subfns * Update `History` doc * remove rmp-serde from history * update warning --------- Co-authored-by: Conrad Ludgate --- atuin-client/src/import/zsh_histdb.rs | 36 ++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) (limited to 'atuin-client/src/import/zsh_histdb.rs') diff --git a/atuin-client/src/import/zsh_histdb.rs b/atuin-client/src/import/zsh_histdb.rs index 2f9a192d..78a7176b 100644 --- a/atuin-client/src/import/zsh_histdb.rs +++ b/atuin-client/src/import/zsh_histdb.rs @@ -61,27 +61,29 @@ pub struct HistDbEntry { impl From for History { fn from(histdb_item: HistDbEntry) -> Self { - History::new( - DateTime::from_utc(histdb_item.start_time, Utc), // must assume UTC? - String::from_utf8(histdb_item.argv) - .unwrap_or_else(|_e| String::from("")) - .trim_end() - .to_string(), - String::from_utf8(histdb_item.dir) - .unwrap_or_else(|_e| String::from("")) - .trim_end() - .to_string(), - 0, // assume 0, we have no way of knowing :( - histdb_item.duration, - None, - Some( + let imported = History::import() + .timestamp(DateTime::from_utc(histdb_item.start_time, Utc)) + .command( + String::from_utf8(histdb_item.argv) + .unwrap_or_else(|_e| String::from("")) + .trim_end() + .to_string(), + ) + .cwd( + String::from_utf8(histdb_item.dir) + .unwrap_or_else(|_e| String::from("")) + .trim_end() + .to_string(), + ) + .duration(histdb_item.duration) + .hostname( String::from_utf8(histdb_item.host) .unwrap_or_else(|_e| String::from("")) .trim_end() .to_string(), - ), - None, - ) + ); + + imported.build().into() } } -- cgit v1.3.1