use errors::*;
use share::IsShare;
use super::serialize::{share_from_string, share_to_string};
pub use dss::metadata::MetaData;
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct Share {
pub id: u8,
pub threshold: u8,
pub shares_count: u8,
pub data: Vec<u8>,
pub hash: Vec<u8>,
pub metadata: Option<MetaData>,
}
impl Share {
pub fn into_string(self) -> String {
share_to_string(self)
}
pub fn from_string(raw: &str) -> Result<Self> {
share_from_string(raw)
}
}
impl IsShare for Share {
fn get_id(&self) -> u8 {
self.id
}
fn get_data(&self) -> &[u8] {
&self.data
}
fn get_threshold(&self) -> u8 {
self.threshold
}
fn get_shares_count(&self) -> Option<u8> {
Some(self.shares_count)
}
}