linkspec: implement Display/Redacted on RelayIds

This commit is contained in:
Nick Mathewson 2023-06-09 15:53:12 -04:00
parent 979a2bd6a0
commit a6ce079d4a
1 changed files with 22 additions and 0 deletions

View File

@ -78,6 +78,17 @@ impl RelayIds {
}
}
impl std::fmt::Display for RelayIds {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.display_relay_ids())
}
}
impl Redactable for RelayIds {
fn display_redacted(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.display_relay_ids().redacted())
}
}
/// OwnedChanTarget is a summary of a [`ChanTarget`] that owns all of its
/// members.
#[derive(Debug, Clone, derive_builder::Builder)]
@ -323,4 +334,15 @@ mod test {
assert_eq!(format!("{:?}", ct), format!("{:?}", ct2));
assert_eq!(format!("{:?}", ct), format!("{:?}", ct.clone()));
}
#[test]
fn format_relay_ids() {
let mut builder = RelayIds::builder();
builder
.ed_identity([42; 32].into())
.rsa_identity([45; 20].into());
let ids = builder.build().unwrap();
assert_eq!(format!("{}", ids), "ed25519:KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio $2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d");
assert_eq!(format!("{}", ids.redacted()), "Ki…");
}
}