Skip to main content

fuzzy_logic_engine_rs/
term.rs

1use crate::membership::MembershipKind;
2
3#[derive(Debug, Clone)]
4pub struct Term {
5    pub name: String,
6    pub kind: MembershipKind,
7}
8
9impl Term {
10    pub fn new(name: impl Into<String>, kind: MembershipKind) -> Self {
11        Self {
12            name: name.into(),
13            kind,
14        }
15    }
16
17    pub fn degree(&self, x: f64) -> f64 {
18        self.kind.degree(x)
19    }
20
21    pub fn membership(&self, x: &Vec<f64>) -> f64 {
22        self.kind.degree(*x.first().unwrap())
23    }
24}