use std::fmt;
use std::fmt::Display;
#[derive(Debug, Copy, Clone)]
pub struct SvgNumber(
f64,
usize,
);
impl Display for SvgNumber {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "{0:.1$}", self.0, self.1)
}
}
impl SvgNumber {
pub fn new(value: f64, precision: usize) -> Self {
Self(value, precision)
}
}
impl From<u8> for SvgNumber {
fn from(value: u8) -> Self {
Self(value as f64, 0)
}
}
impl From<i8> for SvgNumber {
fn from(value: i8) -> Self {
Self(value as f64, 0)
}
}
impl From<u16> for SvgNumber {
fn from(value: u16) -> Self {
Self(value as f64, 0)
}
}
impl From<i16> for SvgNumber {
fn from(value: i16) -> Self {
Self(value as f64, 0)
}
}
impl From<u32> for SvgNumber {
fn from(value: u32) -> Self {
Self(value as f64, 0)
}
}
impl From<i32> for SvgNumber {
fn from(value: i32) -> Self {
Self(value as f64, 0)
}
}
impl From<u64> for SvgNumber {
fn from(value: u64) -> Self {
Self(value as f64, 0)
}
}
impl From<i64> for SvgNumber {
fn from(value: i64) -> Self {
Self(value as f64, 0)
}
}
impl From<f32> for SvgNumber {
fn from(value: f32) -> Self {
Self(value as f64, 0)
}
}
impl From<f64> for SvgNumber {
fn from(value: f64) -> Self {
Self(value, 0)
}
}