runmat-meshing-core 0.6.0

Deterministic meshing preparation contracts for RunMat
Documentation
use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
#[serde(rename_all = "snake_case")]
pub enum SourceEntityKind {
    Body,
    Face,
    Edge,
    Region,
    Mesh,
    Unknown,
}

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct MeshEntityProvenance {
    pub source_geometry_id: String,
    pub source_geometry_revision: u32,
    pub source_entity_kind: SourceEntityKind,
    pub source_entity_id: String,
    #[serde(default)]
    pub region_ids: Vec<String>,
}

#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct AnalysisMeshProvenance {
    pub algorithm: String,
    pub source_geometry_id: String,
    pub source_geometry_revision: u32,
    #[serde(default)]
    pub source_geometry_sha256: Option<String>,
}