use crate::classifier::SegmentType;
use crate::identifier::Identifier;
use crate::position::Position;
#[derive(Debug, Clone)]
pub enum Event {
HostSeen {
host: String,
},
PathLengthSeen {
length: usize,
},
RawShapeSeen {
shape: String,
},
FingerprintSeen {
shape: String,
},
PositionSeen {
position: Position,
value: String,
ty: SegmentType,
},
ClusterAddition {
key: String,
host: String,
scheme: String,
shape: String,
iri: Box<Identifier>,
},
}
impl Event {
pub fn kind(&self) -> &'static str {
match self {
Event::HostSeen { .. } => "host_seen",
Event::PathLengthSeen { .. } => "path_length_seen",
Event::RawShapeSeen { .. } => "raw_shape_seen",
Event::FingerprintSeen { .. } => "fingerprint_seen",
Event::PositionSeen { .. } => "position_seen",
Event::ClusterAddition { .. } => "cluster_addition",
}
}
}