Struct png::ScaledFloat

source ·
pub struct ScaledFloat(u32);
Expand description

An unsigned integer scaled version of a floating point value, equivalent to an integer quotient with fixed denominator (100_000)).

Tuple Fields§

§0: u32

Implementations§

source§

impl ScaledFloat

source

const SCALING: f32 = 1.0E+5f32

source

pub fn in_range(value: f32) -> bool

Gets whether the value is within the clamped range of this type.

source

pub fn exact(value: f32) -> bool

Gets whether the value can be exactly converted in round-trip.

source

fn forward(value: f32) -> u32

source

fn reverse(encoded: u32) -> f32

source

pub fn new(value: f32) -> Self

Slightly inaccurate scaling and quantization. Clamps the value into the representable range if it is negative or too large.

source

pub fn from_scaled(val: u32) -> Self

Fully accurate construction from a value scaled as per specification.

source

pub fn into_scaled(self) -> u32

Get the accurate encoded value.

source

pub fn into_value(self) -> f32

Get the unscaled value as a floating point.

source

pub(crate) fn encode_gama<W: Write>( self, w: &mut W, ) -> Result<(), EncodingError>

Trait Implementations§

source§

impl Clone for ScaledFloat

source§

fn clone(&self) -> ScaledFloat

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ScaledFloat

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl PartialEq for ScaledFloat

source§

fn eq(&self, other: &ScaledFloat) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for ScaledFloat

source§

impl Eq for ScaledFloat

source§

impl StructuralPartialEq for ScaledFloat

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.