1use crate::v4l_sys::*;
2use std::fmt;
3
4#[derive(Debug, Default, Clone, Copy)]
5pub struct Fraction {
7 pub numerator: u32,
8 pub denominator: u32,
9}
10
11impl Fraction {
12 pub fn new(num: u32, denom: u32) -> Self {
26 Fraction {
27 numerator: num,
28 denominator: denom,
29 }
30 }
31}
32
33impl fmt::Display for Fraction {
34 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
35 write!(f, "{}/{}", self.numerator, self.denominator)
36 }
37}
38
39impl From<v4l2_fract> for Fraction {
40 fn from(frac: v4l2_fract) -> Self {
41 Self {
42 numerator: frac.numerator,
43 denominator: frac.denominator,
44 }
45 }
46}
47
48impl From<Fraction> for v4l2_fract {
49 fn from(fraction: Fraction) -> Self {
50 Self {
51 numerator: fraction.numerator,
52 denominator: fraction.denominator,
53 }
54 }
55}