ab7f24dc1f
Feature/vouchers
23 lines
485 B
Rust
23 lines
485 B
Rust
use crate::CoconutError;
|
|
|
|
pub trait Bytable
|
|
where
|
|
Self: Sized,
|
|
{
|
|
fn to_byte_vec(&self) -> Vec<u8>;
|
|
|
|
fn try_from_byte_slice(slice: &[u8]) -> Result<Self, CoconutError>;
|
|
}
|
|
|
|
pub trait Base58
|
|
where
|
|
Self: Bytable,
|
|
{
|
|
fn try_from_bs58<S: AsRef<str>>(x: S) -> Result<Self, CoconutError> {
|
|
Self::try_from_byte_slice(&bs58::decode(x.as_ref()).into_vec().unwrap())
|
|
}
|
|
fn to_bs58(&self) -> String {
|
|
bs58::encode(self.to_byte_vec()).into_string()
|
|
}
|
|
}
|