Skip to content

Commit 2b5da93

Browse files
committed
fix!: use dyn trait where possible.
This reduces compile time due to avoiding duplication.
1 parent c40c3c2 commit 2b5da93

File tree

3 files changed

+24
-15
lines changed

3 files changed

+24
-15
lines changed

gix-date/src/time/format.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ impl Time {
6767
///
6868
/// Use the [`format_description`](https://time-rs.github.io/book/api/format-description.html) macro to create and
6969
/// validate formats at compile time, courtesy of the [`time`] crate.
70-
pub fn format<'a>(&self, format: impl Into<Format<'a>>) -> String {
71-
match format.into() {
70+
pub fn format(&self, format: Format<'_>) -> String {
71+
match format {
7272
Format::Custom(format) => self
7373
.to_time()
7474
.format(&format)

gix-date/src/time/write.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ impl Time {
1212
}
1313

1414
/// Serialize this instance to `out` in a format suitable for use in header fields of serialized git commits or tags.
15-
pub fn write_to(&self, mut out: impl std::io::Write) -> std::io::Result<()> {
15+
pub fn write_to(&self, out: &mut dyn std::io::Write) -> std::io::Result<()> {
1616
let mut itoa = itoa::Buffer::new();
1717
out.write_all(itoa.format(self.seconds).as_bytes())?;
1818
out.write_all(b" ")?;

gix-date/tests/time/format.rs

Lines changed: 21 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use time::macros::format_description;
66

77
#[test]
88
fn short() {
9-
assert_eq!(time().format(format::SHORT), "1973-11-30");
9+
assert_eq!(time().format(format::SHORT.into()), "1973-11-30");
1010
}
1111

1212
#[test]
@@ -25,57 +25,66 @@ fn raw() {
2525

2626
#[test]
2727
fn iso8601() {
28-
assert_eq!(time().format(format::ISO8601), "1973-11-30 00:03:09 +0230");
28+
assert_eq!(time().format(format::ISO8601.into()), "1973-11-30 00:03:09 +0230");
2929
}
3030

3131
#[test]
3232
fn iso8601_strict() {
33-
assert_eq!(time().format(format::ISO8601_STRICT), "1973-11-30T00:03:09+02:30");
33+
assert_eq!(
34+
time().format(format::ISO8601_STRICT.into()),
35+
"1973-11-30T00:03:09+02:30"
36+
);
3437
}
3538

3639
#[test]
3740
fn rfc2822() {
38-
assert_eq!(time().format(format::RFC2822), "Fri, 30 Nov 1973 00:03:09 +0230");
39-
assert_eq!(time_dec1().format(format::RFC2822), "Sat, 01 Dec 1973 00:03:09 +0230");
41+
assert_eq!(time().format(format::RFC2822.into()), "Fri, 30 Nov 1973 00:03:09 +0230");
42+
assert_eq!(
43+
time_dec1().format(format::RFC2822.into()),
44+
"Sat, 01 Dec 1973 00:03:09 +0230"
45+
);
4046
}
4147

4248
#[test]
4349
fn git_rfc2822() {
44-
assert_eq!(time().format(format::GIT_RFC2822), "Fri, 30 Nov 1973 00:03:09 +0230");
4550
assert_eq!(
46-
time_dec1().format(format::GIT_RFC2822),
51+
time().format(format::GIT_RFC2822.into()),
52+
"Fri, 30 Nov 1973 00:03:09 +0230"
53+
);
54+
assert_eq!(
55+
time_dec1().format(format::GIT_RFC2822.into()),
4756
"Sat, 1 Dec 1973 00:03:09 +0230"
4857
);
4958
}
5059

5160
#[test]
5261
fn default() {
5362
assert_eq!(
54-
time().format(gix_date::time::format::GITOXIDE),
63+
time().format(gix_date::time::format::GITOXIDE.into()),
5564
"Fri Nov 30 1973 00:03:09 +0230"
5665
);
5766
assert_eq!(
58-
time_dec1().format(gix_date::time::format::GITOXIDE),
67+
time_dec1().format(gix_date::time::format::GITOXIDE.into()),
5968
"Sat Dec 01 1973 00:03:09 +0230"
6069
)
6170
}
6271

6372
#[test]
6473
fn git_default() {
6574
assert_eq!(
66-
time().format(gix_date::time::format::DEFAULT),
75+
time().format(gix_date::time::format::DEFAULT.into()),
6776
"Fri Nov 30 00:03:09 1973 +0230"
6877
);
6978
assert_eq!(
70-
time_dec1().format(gix_date::time::format::DEFAULT),
79+
time_dec1().format(gix_date::time::format::DEFAULT.into()),
7180
"Sat Dec 1 00:03:09 1973 +0230"
7281
)
7382
}
7483

7584
#[test]
7685
fn custom_compile_time() {
7786
assert_eq!(
78-
time().format(format_description!("[year]-[month]-[day] [hour]:[minute]:[second]")),
87+
time().format(format_description!("[year]-[month]-[day] [hour]:[minute]:[second]").into()),
7988
"1973-11-30 00:03:09",
8089
);
8190
}

0 commit comments

Comments
 (0)