diff options
author | Robin Krahl <robin.krahl@ireas.org> | 2020-09-19 23:15:33 +0200 |
---|---|---|
committer | Robin Krahl <robin.krahl@ireas.org> | 2020-09-20 11:50:37 +0200 |
commit | 655b823d13acbb71bb1496df29a9008e1b0ee9a2 (patch) | |
tree | ca62d77511701faf5dfd054c61e753698aeec2a4 | |
parent | e9a06bb9a2802a5ae6011fcd96cf54e1cfc7d311 (diff) | |
download | nitrokey-sys-rs-655b823d13acbb71bb1496df29a9008e1b0ee9a2.tar.gz nitrokey-sys-rs-655b823d13acbb71bb1496df29a9008e1b0ee9a2.tar.bz2 |
Implement Display for Version in build.rs
Previously, we implemented the std::string::ToString trait for the
Version enum in build.rs for converting the libnitrokey version number
to a string. This patch replaces this implementation with an
implementation of the std::fmt::Display trait, which automatically
generates a ToString implementation and is more idiomatic.
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | build.rs | 13 |
2 files changed, 9 insertions, 6 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index a7af9fb..6480c5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Unreleased - Derive `Debug` for all structs generated by `bindgen`. +- Implement `std::fmt::Display` instead of `std::string::ToString` for the + `Version` enum in `build.rs`. # v3.5.0 (2019-07-04) - Mark deprecated functions using the `deprecated` attribute. @@ -1,9 +1,9 @@ use std::env; +use std::fmt; use std::fs; use std::io; use std::io::{Read, Write}; use std::path; -use std::string; use cc; @@ -14,12 +14,13 @@ struct Version { patch: Option<u32>, } -impl string::ToString for Version { - fn to_string(&self) -> String { - match self.patch { - Some(patch) => format!("v{}.{}.{}", self.major, self.minor, patch), - None => format!("v{}.{}", self.major, self.minor), +impl fmt::Display for Version { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "v{}.{}", self.major, self.minor)?; + if let Some(patch) = self.patch { + write!(f, ".{}", patch)?; } + Ok(()) } } |