Skip to main content

runmat_test/identity/
test.rs

1use serde::{Deserialize, Serialize};
2
3use super::algorithm;
4
5#[derive(Clone, Debug, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize, Deserialize)]
6#[serde(transparent)]
7pub struct TestId(String);
8
9impl TestId {
10    pub fn derive(input: &TestIdentityInput<'_>) -> Self {
11        Self(algorithm::digest(
12            "test",
13            &[
14                input.owner_identity,
15                input.relative_source_identity,
16                input.semantic_scheme,
17                input.semantic_item_path,
18                input.parameter_identity,
19                input.fixture_identity,
20            ],
21        ))
22    }
23
24    pub fn as_str(&self) -> &str {
25        &self.0
26    }
27}
28
29#[derive(Clone, Debug)]
30pub struct TestIdentityInput<'a> {
31    pub owner_identity: &'a str,
32    pub relative_source_identity: &'a str,
33    pub semantic_scheme: &'a str,
34    pub semantic_item_path: &'a str,
35    pub parameter_identity: &'a str,
36    pub fixture_identity: &'a str,
37}