iriq 0.29.1

IRI extraction, normalization, and clustering — peer of the Ruby gem + Go module.
Documentation
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",
        }
    }
}