eryon_mem/features/relationship/
kind.rs

1/*
2    appellation: relationship_kind <module>
3    authors: @FL03
4*/
5
6/// Types of relationships between features
7#[derive(
8    Clone,
9    Copy,
10    Debug,
11    Default,
12    Eq,
13    Hash,
14    Ord,
15    PartialEq,
16    PartialOrd,
17    strum::AsRefStr,
18    strum::Display,
19    strum::EnumCount,
20    strum::EnumIs,
21    strum::EnumIter,
22    strum::EnumString,
23    strum::VariantArray,
24    strum::VariantNames,
25)]
26#[cfg_attr(
27    feature = "serde",
28    derive(serde_derive::Deserialize, serde_derive::Serialize),
29    serde(rename_all = "snake_case")
30)]
31#[strum(serialize_all = "snake_case")]
32pub enum RelationshipType {
33    #[default]
34    /// One feature typically leads to another
35    Causal,
36    /// One feature is composed of other features
37    Composition,
38    Critical,
39    Interval,
40    /// Features are close in tonal space
41    Proximity,
42    /// Transformation from one feature to another
43    Transformation,
44}