runmat_test/identity/
test.rs1use 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}