1#[derive(Debug, Clone, PartialEq, uniffi::Enum)]
2pub enum MinutiaKind {
3 RidgeEnding = 1, Bifurcation = 2, }
6
7#[derive(uniffi::Record)]
8pub struct Position {
9 pub x: i32,
10 pub y: i32,
11}
12
13#[derive(Debug, Clone, uniffi::Object)]
16pub struct Minutia {
17 pub(crate) x: i32,
18 pub(crate) y: i32,
19 pub(crate) direction: i32,
20 pub(crate) reliability: f64, pub(crate) kind: MinutiaKind,
22}
23
24#[uniffi::export]
25impl Minutia {
26 pub fn angle(&self) -> f64 {
28 let angle = 90.0 - self.direction as f64 * 11.25;
29 (angle % 360.0 + 360.0) % 360.0 }
31
32 pub fn x(&self) -> i32 {
33 self.x
34 }
35
36 pub fn y(&self) -> i32 {
37 self.y
38 }
39
40 pub fn position(&self) -> Position {
42 Position {
43 x: self.x,
44 y: self.y,
45 }
46 }
47
48 pub fn reliability(&self) -> f64 {
50 self.reliability
51 }
52
53 pub fn kind(&self) -> MinutiaKind {
55 self.kind.clone()
56 }
57}