use crate::dsnp::{
dsnp_configs::{DsnpVersionConfig, PublicKeyType, SecretKeyType},
dsnp_types::{DsnpInnerGraph, DsnpPublicKey, PrivateGraphChunk},
};
use dsnp_graph_config::errors::DsnpGraphResult;
pub trait DsnpReader {
fn read_public_key(data: &[u8]) -> DsnpGraphResult<DsnpPublicKey>;
fn read_public_graph(data: &[u8]) -> DsnpGraphResult<DsnpInnerGraph>;
fn read_private_graph(
data: &[u8],
dsnp_version_config: &DsnpVersionConfig,
decryption_input: &SecretKeyType,
) -> DsnpGraphResult<PrivateGraphChunk>;
}
pub trait DsnpWriter {
fn write_public_key(key: &DsnpPublicKey) -> DsnpGraphResult<Vec<u8>>;
fn write_public_graph(inner: &DsnpInnerGraph) -> DsnpGraphResult<Vec<u8>>;
fn write_private_graph(
graph: &PrivateGraphChunk,
dsnp_version_config: &DsnpVersionConfig,
encryption_input: &PublicKeyType,
) -> DsnpGraphResult<Vec<u8>>;
}