use mago_word::Word;
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct DefSignatureNode {
pub name: Word,
pub is_function: bool,
pub children: Vec<DefSignatureNode>,
pub hash: u64,
pub signature_hash: u64,
}
impl DefSignatureNode {
#[inline]
#[must_use]
pub fn new(name: Word, is_function: bool, hash: u64, signature_hash: u64) -> Self {
Self { name, is_function, children: Vec::new(), hash, signature_hash }
}
}
#[derive(Debug, Clone, PartialEq, Eq, Default)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct FileSignature {
pub hash: u64,
pub ast_nodes: Vec<DefSignatureNode>,
}