use serde::{Deserialize, Serialize};
use std::collections::{HashMap, HashSet};
use crate::interface::{Export, Import};
#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)]
pub struct InterfaceMatcher {
pub namespaces: HashSet<String>,
pub namespace_imports: HashMap<String, HashSet<Import>>,
pub exports: HashSet<Export>,
}
#[cfg(feature = "binary_encode")]
impl InterfaceMatcher {
fn into_bytes(&self) -> Vec<u8> {
bincode::serialize(self).expect("Could not serialize InterfaceMatcher")
}
fn from_bytes(bytes: &[u8]) -> Option<Self> {
bincode::deserialize(bytes).ok()
}
}