blob: 29712e0732207d6fadf8ac4c6717aacf5a50cfa4 (
plain) (
tree)
|
|
use std::fmt::{Display, Formatter, Result};
use std::ops::{Add, Sub, AddAssign, SubAssign, Div, Mul, DivAssign, MulAssign};
use crate::metric::Unit;
use crate::metric::Primitive;
use crate::declare_unit_basics;
use crate::declare_simple_unit;
use crate::metric::electric_resistance::ElectricResistance;
declare_simple_unit!(Conductance, Siemens, "S");
// 1/s = Hz
impl Div<ElectricResistance> for f64 {
type Output = Conductance;
fn div(self, rhs: ElectricResistance) -> Self::Output {
Conductance::Canonical(self * rhs.to_si_primitive())
}
}
// Hz * s = 1
impl Mul<ElectricResistance> for Conductance {
type Output = f64;
fn mul(self, rhs: ElectricResistance) -> Self::Output {
self.to_si_primitive() * rhs.to_si_primitive()
}
}
// s * Hz = 1
impl Mul<Conductance> for ElectricResistance {
type Output = f64;
fn mul(self, rhs: Conductance) -> Self::Output {
self.to_si_primitive() * rhs.to_si_primitive()
}
}
|