display methods

feat/vaults
Tomáš Mládek 2020-09-12 14:43:42 +02:00
parent 1d952b34dd
commit 6895b076be
1 changed files with 19 additions and 0 deletions

View File

@ -14,6 +14,7 @@ use log::{debug, trace};
use crate::addressing::Address;
use crate::hash::{decode, encode, hash, Hash, Hashable};
use crate::models;
use serde::export::Formatter;
#[derive(Debug, Clone)]
pub struct Entry {
@ -50,6 +51,12 @@ impl TryFrom<models::Entry> for Entry {
}
}
impl std::fmt::Display for InnerEntry {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
write!(f, "{} | {} | {}", self.target, self.key, self.value)
}
}
impl EntryValue {
fn to_str(&self) -> Result<String> {
let (type_char, content) = match self {
@ -62,6 +69,18 @@ impl EntryValue {
}
}
// unsafe unwraps!
impl std::fmt::Display for EntryValue {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
let (entry_type, entry_value) = match self {
EntryValue::Address(address) => ("ADDRESS", encode(address.encode().unwrap())),
EntryValue::Value(value) => ("VALUE", serde_json::to_string(value).unwrap()),
EntryValue::Invalid => ("INVALID", "INVALID".to_string()),
};
write!(f, "{}: {}", entry_type, entry_value)
}
}
impl std::str::FromStr for EntryValue {
type Err = std::convert::Infallible;