summaryrefslogtreecommitdiff
path: root/src/object.rs
diff options
context:
space:
mode:
authorRosyid Haryadi <rosyid_haryadi@protonmail.com>2025-03-18 15:32:50 +0700
committerRosyid Haryadi <rosyid_haryadi@protonmail.com>2025-03-18 15:32:50 +0700
commita8cf3b2757dee028e86f7cc6848b741c46dd933a (patch)
treed263a03b8f0089c6d4ef84fbb3700ccfc1ba8e6d /src/object.rs
parenta173c17a4b45f30a0190050beb96684cf03ab5f0 (diff)
upd: implementing cat-file & add readme
Diffstat (limited to 'src/object.rs')
-rw-r--r--src/object.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/object.rs b/src/object.rs
index 12f83ae..8877641 100644
--- a/src/object.rs
+++ b/src/object.rs
@@ -1,3 +1,4 @@
+use std::fmt::{Display, Formatter};
use crate::utilities::{deserialize_kv_with_message, serialize_kv_with_message};
use crate::{create_path_or_die, die};
use derive_is_enum_variant::is_enum_variant;
@@ -143,4 +144,15 @@ impl GitCommit {
pub fn serialize(&self) -> Vec<u8> {
serialize_kv_with_message(&self.header, self.message.as_str())
}
+}
+
+impl Display for GitCommit {
+ fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
+ for (k, v) in self.header {
+ write!(f, "{} {}\n", k, v)?;
+ }
+ write!(f, "\n")?;
+ write!(f, "{}", self.message)?;
+ Ok(())
+ }
} \ No newline at end of file