generalized_suffix_tree/
utils.rs

1use serde::{Serialize, Deserialize};
2use std::hash::Hash;
3use std::fmt::{Display, Debug};
4use std::collections::HashMap;
5
6#[derive(Debug, Serialize, Deserialize)]
7pub struct Enode<T, U>
8where
9    T: Display + Debug + Eq + PartialEq + Hash + Clone,
10    U: Display + Debug + Eq + PartialEq + Hash + Clone,
11{
12    children: HashMap<T, usize>,
13    data: Vec<U>,
14    node_id: usize,
15    slink: Option<usize>
16}
17
18impl<T, U> Enode<T, U>
19where
20    T: Display + Debug + Eq + PartialEq + Hash + Clone + Serialize,
21    U: Display + Debug + Eq + PartialEq + Hash + Clone + Serialize,
22{
23    pub fn new(children: HashMap<T, usize>,
24                data: Vec<U>,
25                slink: Option<usize>,
26                node_id: usize) -> Enode<T, U>{
27            Enode{
28                children,
29                data,
30                node_id,
31                slink
32            }
33        }
34}