diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2019-01-09 18:17:20 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2019-01-09 18:22:43 -0800 |
commit | c8a8cb4ec532cbf1a6821fba4b2084b4f0e7b4c0 (patch) | |
tree | fa3fe500bc76aa24ed7810ce96d4fd4aab42ffb7 /rust/src/identifiers.rs | |
parent | 181d80073a88ccce6925dd5663bb2c5c716d6e54 (diff) | |
download | fatcat-c8a8cb4ec532cbf1a6821fba4b2084b4f0e7b4c0.tar.gz fatcat-c8a8cb4ec532cbf1a6821fba4b2084b4f0e7b4c0.zip |
impl AsRef, From, Into for FatCatId
Diffstat (limited to 'rust/src/identifiers.rs')
-rw-r--r-- | rust/src/identifiers.rs | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/rust/src/identifiers.rs b/rust/src/identifiers.rs index 5cfa2fb6..e107d16f 100644 --- a/rust/src/identifiers.rs +++ b/rust/src/identifiers.rs @@ -4,7 +4,7 @@ use regex::Regex; use serde_json; use std::str::FromStr; use uuid::Uuid; -use std::fmt; +use std::{fmt, convert}; #[derive(Clone, Copy, PartialEq, Debug)] @@ -23,11 +23,29 @@ impl FromStr for FatCatId { } } +impl convert::AsRef<Uuid> for FatCatId { + fn as_ref(&self) -> &Uuid { + &self.0 + } +} + +impl convert::Into<Uuid> for FatCatId { + fn into(self) -> Uuid { + self.0 + } +} + +impl convert::From<Uuid> for FatCatId { + fn from(u: Uuid) -> FatCatId { + FatCatId(u) + } +} + impl FatCatId { pub fn to_uuid(&self) -> Uuid { self.0 } - // TODO: just make it u: Uuid and clone (not by ref) + // TODO: make it possible to just pass 'Uuid' in addition to '&Uuid' pub fn from_uuid(u: &Uuid) -> FatCatId { FatCatId(*u) } |