ps_uuid/implementations/
display.rs1use std::fmt;
2
3use crate::UUID;
4
5impl fmt::Display for UUID {
6 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
7 write!(
9 f,
10 "{:02x}{:02x}{:02x}{:02x}-{:02x}{:02x}-{:02x}{:02x}-{:02x}{:02x}-{:02x}{:02x}{:02x}{:02x}{:02x}{:02x}",
11 self.bytes[0], self.bytes[1], self.bytes[2], self.bytes[3],
12 self.bytes[4], self.bytes[5],
13 self.bytes[6], self.bytes[7],
14 self.bytes[8], self.bytes[9],
15 self.bytes[10], self.bytes[11], self.bytes[12], self.bytes[13], self.bytes[14], self.bytes[15]
16 )
17 }
18}
19
20#[cfg(test)]
21mod tests {
22 use super::UUID;
23 use std::string::ToString;
24
25 #[test]
26 fn test_uuid_display() {
27 let nil_uuid = UUID { bytes: [0u8; 16] };
29 let expected_nil = "00000000-0000-0000-0000-000000000000";
30 assert_eq!(nil_uuid.to_string(), expected_nil);
31
32 let sample_uuid = UUID {
34 bytes: [
35 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E,
36 0x0F, 0x10,
37 ],
38 };
39 let expected_sample = "01020304-0506-0708-090a-0b0c0d0e0f10";
40 assert_eq!(sample_uuid.to_string(), expected_sample);
41 }
42}