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}