Struct fixnum::FixedPoint [−][src]
pub struct FixedPoint<I, P> { /* fields omitted */ }
i128
or i64
or i32
or i16
only.Expand description
Abstraction over fixed point numbers of arbitrary (but only compile-time specified) size and precision.
The internal representation is a fixed point decimal number,
an integer value pre-multiplied by 10 ^ PRECISION
,
where PRECISION
is a compile-time-defined decimal places count.
Maximal possible value: MAX = (2 ^ (BITS_COUNT - 1) - 1) / 10 ^ PRECISION
Maximal possible calculation error: ERROR_MAX = 0.5 / (10 ^ PRECISION)
E.g. for i64
with 9 decimal places:
MAX = (2 ^ (64 - 1) - 1) / 1e9 = 9223372036.854775807 ~ 9.2e9
ERROR_MAX = 0.5 / 1e9 = 5e-10
Implementations
i16
only.This is supported on crate feature i16
only.
i16
only.Checked negation. Returns Err
on overflow (you can’t negate MIN
value).
pub fn half_sum(
a: FixedPoint<i16, P>,
b: FixedPoint<i16, P>,
mode: RoundMode
) -> FixedPoint<i16, P>
i16
only.This is supported on crate feature i16
only.
i16
only.Takes rounded integral part of the number.
use fixnum::{FixedPoint, typenum::U9, ops::RoundMode::*};
type Amount = FixedPoint<i64, U9>;
let a: Amount = "8273.519".parse()?;
assert_eq!(a.integral(Floor), 8273);
assert_eq!(a.integral(Ceil), 8274);
let a: Amount = "-8273.519".parse()?;
assert_eq!(a.integral(Floor), -8274);
assert_eq!(a.integral(Ceil), -8273);
i16
only.i16
only.Use TryFrom
instead
i16
and std
only.Use From
instead
i16
only.i16
only.i16
only.i16
only.i32
only.This is supported on crate feature i32
only.
i32
only.Checked negation. Returns Err
on overflow (you can’t negate MIN
value).
pub fn half_sum(
a: FixedPoint<i32, P>,
b: FixedPoint<i32, P>,
mode: RoundMode
) -> FixedPoint<i32, P>
i32
only.This is supported on crate feature i32
only.
i32
only.Takes rounded integral part of the number.
use fixnum::{FixedPoint, typenum::U9, ops::RoundMode::*};
type Amount = FixedPoint<i64, U9>;
let a: Amount = "8273.519".parse()?;
assert_eq!(a.integral(Floor), 8273);
assert_eq!(a.integral(Ceil), 8274);
let a: Amount = "-8273.519".parse()?;
assert_eq!(a.integral(Floor), -8274);
assert_eq!(a.integral(Ceil), -8273);
i32
only.i32
only.Use TryFrom
instead
i32
and std
only.Use From
instead
i32
only.i32
only.i32
only.i32
only.i64
only.This is supported on crate feature i64
only.
i64
only.Checked negation. Returns Err
on overflow (you can’t negate MIN
value).
pub fn half_sum(
a: FixedPoint<i64, P>,
b: FixedPoint<i64, P>,
mode: RoundMode
) -> FixedPoint<i64, P>
i64
only.This is supported on crate feature i64
only.
i64
only.Takes rounded integral part of the number.
use fixnum::{FixedPoint, typenum::U9, ops::RoundMode::*};
type Amount = FixedPoint<i64, U9>;
let a: Amount = "8273.519".parse()?;
assert_eq!(a.integral(Floor), 8273);
assert_eq!(a.integral(Ceil), 8274);
let a: Amount = "-8273.519".parse()?;
assert_eq!(a.integral(Floor), -8274);
assert_eq!(a.integral(Ceil), -8273);
i64
only.i64
only.Use TryFrom
instead
i64
and std
only.Use From
instead
i64
only.i64
only.i64
only.i64
only.i128
only.This is supported on crate feature i128
only.
i128
only.Checked negation. Returns Err
on overflow (you can’t negate MIN
value).
pub fn half_sum(
a: FixedPoint<i128, P>,
b: FixedPoint<i128, P>,
mode: RoundMode
) -> FixedPoint<i128, P>
i128
only.This is supported on crate feature i128
only.
i128
only.Takes rounded integral part of the number.
use fixnum::{FixedPoint, typenum::U9, ops::RoundMode::*};
type Amount = FixedPoint<i64, U9>;
let a: Amount = "8273.519".parse()?;
assert_eq!(a.integral(Floor), 8273);
assert_eq!(a.integral(Ceil), 8274);
let a: Amount = "-8273.519".parse()?;
assert_eq!(a.integral(Floor), -8274);
assert_eq!(a.integral(Ceil), -8273);
i128
only.i128
only.Use TryFrom
instead
i128
and std
only.Use From
instead
i128
only.i128
only.i128
only.pub fn from_decimal(
mantissa: i128,
exponent: i32
) -> Result<FixedPoint<i128, P>, ConvertError>
i128
only.Trait Implementations
impl<P: Precision> CheckedAdd<FixedPoint<i128, P>> for FixedPoint<i128, P>
This is supported on crate feature i128
only.
impl<P: Precision> CheckedAdd<FixedPoint<i128, P>> for FixedPoint<i128, P>
i128
only.type Output = FixedPoint<i128, P>
type Error = ArithmeticError
Checked addition. Returns Err
on overflow. Read more
impl<P: Precision> CheckedAdd<FixedPoint<i16, P>> for FixedPoint<i16, P>
This is supported on crate feature i16
only.
impl<P: Precision> CheckedAdd<FixedPoint<i16, P>> for FixedPoint<i16, P>
i16
only.type Output = FixedPoint<i16, P>
type Error = ArithmeticError
Checked addition. Returns Err
on overflow. Read more
impl<P: Precision> CheckedAdd<FixedPoint<i32, P>> for FixedPoint<i32, P>
This is supported on crate feature i32
only.
impl<P: Precision> CheckedAdd<FixedPoint<i32, P>> for FixedPoint<i32, P>
i32
only.type Output = FixedPoint<i32, P>
type Error = ArithmeticError
Checked addition. Returns Err
on overflow. Read more
impl<P: Precision> CheckedAdd<FixedPoint<i64, P>> for FixedPoint<i64, P>
This is supported on crate feature i64
only.
impl<P: Precision> CheckedAdd<FixedPoint<i64, P>> for FixedPoint<i64, P>
i64
only.type Output = FixedPoint<i64, P>
type Error = ArithmeticError
Checked addition. Returns Err
on overflow. Read more
impl<P: Precision> CheckedMul<FixedPoint<i128, P>> for i128
This is supported on crate feature i128
only.
impl<P: Precision> CheckedMul<FixedPoint<i128, P>> for i128
i128
only.type Output = FixedPoint<i128, P>
type Error = ArithmeticError
Checked multiplication. Returns Err
on overflow.
This is multiplication without rounding, hence it’s available only when at least one operand is integer. Read more
impl<P: Precision> CheckedMul<FixedPoint<i16, P>> for i16
This is supported on crate feature i16
only.
impl<P: Precision> CheckedMul<FixedPoint<i16, P>> for i16
i16
only.type Output = FixedPoint<i16, P>
type Error = ArithmeticError
Checked multiplication. Returns Err
on overflow.
This is multiplication without rounding, hence it’s available only when at least one operand is integer. Read more
impl<P: Precision> CheckedMul<FixedPoint<i32, P>> for i32
This is supported on crate feature i32
only.
impl<P: Precision> CheckedMul<FixedPoint<i32, P>> for i32
i32
only.type Output = FixedPoint<i32, P>
type Error = ArithmeticError
Checked multiplication. Returns Err
on overflow.
This is multiplication without rounding, hence it’s available only when at least one operand is integer. Read more
impl<P: Precision> CheckedMul<FixedPoint<i64, P>> for i64
This is supported on crate feature i64
only.
impl<P: Precision> CheckedMul<FixedPoint<i64, P>> for i64
i64
only.type Output = FixedPoint<i64, P>
type Error = ArithmeticError
Checked multiplication. Returns Err
on overflow.
This is multiplication without rounding, hence it’s available only when at least one operand is integer. Read more
impl<P: Precision> CheckedMul<i128> for FixedPoint<i128, P>
This is supported on crate feature i128
only.
impl<P: Precision> CheckedMul<i128> for FixedPoint<i128, P>
i128
only.type Output = FixedPoint<i128, P>
type Error = ArithmeticError
Checked multiplication. Returns Err
on overflow.
This is multiplication without rounding, hence it’s available only when at least one operand is integer. Read more
impl<P: Precision> CheckedMul<i16> for FixedPoint<i16, P>
This is supported on crate feature i16
only.
impl<P: Precision> CheckedMul<i16> for FixedPoint<i16, P>
i16
only.type Output = FixedPoint<i16, P>
type Error = ArithmeticError
Checked multiplication. Returns Err
on overflow.
This is multiplication without rounding, hence it’s available only when at least one operand is integer. Read more
impl<P: Precision> CheckedMul<i32> for FixedPoint<i32, P>
This is supported on crate feature i32
only.
impl<P: Precision> CheckedMul<i32> for FixedPoint<i32, P>
i32
only.type Output = FixedPoint<i32, P>
type Error = ArithmeticError
Checked multiplication. Returns Err
on overflow.
This is multiplication without rounding, hence it’s available only when at least one operand is integer. Read more
impl<P: Precision> CheckedMul<i64> for FixedPoint<i64, P>
This is supported on crate feature i64
only.
impl<P: Precision> CheckedMul<i64> for FixedPoint<i64, P>
i64
only.type Output = FixedPoint<i64, P>
type Error = ArithmeticError
Checked multiplication. Returns Err
on overflow.
This is multiplication without rounding, hence it’s available only when at least one operand is integer. Read more
impl<P: Precision> CheckedSub<FixedPoint<i128, P>> for FixedPoint<i128, P>
This is supported on crate feature i128
only.
impl<P: Precision> CheckedSub<FixedPoint<i128, P>> for FixedPoint<i128, P>
i128
only.type Output = FixedPoint<i128, P>
type Error = ArithmeticError
Checked subtraction. Returns Err
on overflow. Read more
impl<P: Precision> CheckedSub<FixedPoint<i16, P>> for FixedPoint<i16, P>
This is supported on crate feature i16
only.
impl<P: Precision> CheckedSub<FixedPoint<i16, P>> for FixedPoint<i16, P>
i16
only.type Output = FixedPoint<i16, P>
type Error = ArithmeticError
Checked subtraction. Returns Err
on overflow. Read more
impl<P: Precision> CheckedSub<FixedPoint<i32, P>> for FixedPoint<i32, P>
This is supported on crate feature i32
only.
impl<P: Precision> CheckedSub<FixedPoint<i32, P>> for FixedPoint<i32, P>
i32
only.type Output = FixedPoint<i32, P>
type Error = ArithmeticError
Checked subtraction. Returns Err
on overflow. Read more
impl<P: Precision> CheckedSub<FixedPoint<i64, P>> for FixedPoint<i64, P>
This is supported on crate feature i64
only.
impl<P: Precision> CheckedSub<FixedPoint<i64, P>> for FixedPoint<i64, P>
i64
only.type Output = FixedPoint<i64, P>
type Error = ArithmeticError
Checked subtraction. Returns Err
on overflow. Read more
Returns the “default value” for a type. Read more
impl<'de, I, P> Deserialize<'de> for FixedPoint<I, P> where
I: Deserialize<'de>,
Self: FromStr,
This is supported on crate feature serde
only.
impl<'de, I, P> Deserialize<'de> for FixedPoint<I, P> where
I: Deserialize<'de>,
Self: FromStr,
serde
only.Deserialize this value from the given Serde deserializer. Read more
impl<I, P> From<Compact<FixedPoint<I, P>>> for FixedPoint<I, P>
This is supported on crate feature parity
only.
impl<I, P> From<Compact<FixedPoint<I, P>>> for FixedPoint<I, P>
parity
only.Performs the conversion.
Performs the conversion.
Performs the conversion.
Performs the conversion.
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
impl<P: Precision> RoundingDiv<FixedPoint<i128, P>> for FixedPoint<i128, P>
This is supported on crate feature i128
only.
impl<P: Precision> RoundingDiv<FixedPoint<i128, P>> for FixedPoint<i128, P>
i128
only.type Output = FixedPoint<i128, P>
type Error = ArithmeticError
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<FixedPoint<i128, P>> for i128
This is supported on crate feature i128
only.
impl<P: Precision> RoundingDiv<FixedPoint<i128, P>> for i128
i128
only.type Output = FixedPoint<i128, P>
type Error = ArithmeticError
fn rdiv(
self,
rhs: FixedPoint<i128, P>,
mode: RoundMode
) -> Result<FixedPoint<i128, P>, ArithmeticError>
fn rdiv(
self,
rhs: FixedPoint<i128, P>,
mode: RoundMode
) -> Result<FixedPoint<i128, P>, ArithmeticError>
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<FixedPoint<i16, P>> for FixedPoint<i16, P>
This is supported on crate feature i16
only.
impl<P: Precision> RoundingDiv<FixedPoint<i16, P>> for FixedPoint<i16, P>
i16
only.type Output = FixedPoint<i16, P>
type Error = ArithmeticError
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<FixedPoint<i16, P>> for i16
This is supported on crate feature i16
only.
impl<P: Precision> RoundingDiv<FixedPoint<i16, P>> for i16
i16
only.type Output = FixedPoint<i16, P>
type Error = ArithmeticError
fn rdiv(
self,
rhs: FixedPoint<i16, P>,
mode: RoundMode
) -> Result<FixedPoint<i16, P>, ArithmeticError>
fn rdiv(
self,
rhs: FixedPoint<i16, P>,
mode: RoundMode
) -> Result<FixedPoint<i16, P>, ArithmeticError>
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<FixedPoint<i32, P>> for FixedPoint<i32, P>
This is supported on crate feature i32
only.
impl<P: Precision> RoundingDiv<FixedPoint<i32, P>> for FixedPoint<i32, P>
i32
only.type Output = FixedPoint<i32, P>
type Error = ArithmeticError
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<FixedPoint<i32, P>> for i32
This is supported on crate feature i32
only.
impl<P: Precision> RoundingDiv<FixedPoint<i32, P>> for i32
i32
only.type Output = FixedPoint<i32, P>
type Error = ArithmeticError
fn rdiv(
self,
rhs: FixedPoint<i32, P>,
mode: RoundMode
) -> Result<FixedPoint<i32, P>, ArithmeticError>
fn rdiv(
self,
rhs: FixedPoint<i32, P>,
mode: RoundMode
) -> Result<FixedPoint<i32, P>, ArithmeticError>
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<FixedPoint<i64, P>> for FixedPoint<i64, P>
This is supported on crate feature i64
only.
impl<P: Precision> RoundingDiv<FixedPoint<i64, P>> for FixedPoint<i64, P>
i64
only.type Output = FixedPoint<i64, P>
type Error = ArithmeticError
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<FixedPoint<i64, P>> for i64
This is supported on crate feature i64
only.
impl<P: Precision> RoundingDiv<FixedPoint<i64, P>> for i64
i64
only.type Output = FixedPoint<i64, P>
type Error = ArithmeticError
fn rdiv(
self,
rhs: FixedPoint<i64, P>,
mode: RoundMode
) -> Result<FixedPoint<i64, P>, ArithmeticError>
fn rdiv(
self,
rhs: FixedPoint<i64, P>,
mode: RoundMode
) -> Result<FixedPoint<i64, P>, ArithmeticError>
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<i128> for FixedPoint<i128, P>
This is supported on crate feature i128
only.
impl<P: Precision> RoundingDiv<i128> for FixedPoint<i128, P>
i128
only.type Output = FixedPoint<i128, P>
type Error = ArithmeticError
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<i16> for FixedPoint<i16, P>
This is supported on crate feature i16
only.
impl<P: Precision> RoundingDiv<i16> for FixedPoint<i16, P>
i16
only.type Output = FixedPoint<i16, P>
type Error = ArithmeticError
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<i32> for FixedPoint<i32, P>
This is supported on crate feature i32
only.
impl<P: Precision> RoundingDiv<i32> for FixedPoint<i32, P>
i32
only.type Output = FixedPoint<i32, P>
type Error = ArithmeticError
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingDiv<i64> for FixedPoint<i64, P>
This is supported on crate feature i64
only.
impl<P: Precision> RoundingDiv<i64> for FixedPoint<i64, P>
i64
only.type Output = FixedPoint<i64, P>
type Error = ArithmeticError
Checked rounded division. Returns Err
on overflow or attempt to divide by zero.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingMul<FixedPoint<i128, P>> for FixedPoint<i128, P>
This is supported on crate feature i128
only.
impl<P: Precision> RoundingMul<FixedPoint<i128, P>> for FixedPoint<i128, P>
i128
only.type Output = FixedPoint<i128, P>
type Error = ArithmeticError
Checked rounded multiplication. Returns Err
on overflow.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
fn saturating_rmul(self, rhs: Rhs, round_mode: RoundMode) -> Self::Output where
Self: PartialOrd + Zero + Sized,
Rhs: PartialOrd + Zero,
Self::Output: Bounded,
fn saturating_rmul(self, rhs: Rhs, round_mode: RoundMode) -> Self::Output where
Self: PartialOrd + Zero + Sized,
Rhs: PartialOrd + Zero,
Self::Output: Bounded,
Saturating rounding multiplication. Computes self * rhs
, saturating at the numeric bounds
(MIN
, MAX
) instead of overflowing.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingMul<FixedPoint<i16, P>> for FixedPoint<i16, P>
This is supported on crate feature i16
only.
impl<P: Precision> RoundingMul<FixedPoint<i16, P>> for FixedPoint<i16, P>
i16
only.type Output = FixedPoint<i16, P>
type Error = ArithmeticError
Checked rounded multiplication. Returns Err
on overflow.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
fn saturating_rmul(self, rhs: Rhs, round_mode: RoundMode) -> Self::Output where
Self: PartialOrd + Zero + Sized,
Rhs: PartialOrd + Zero,
Self::Output: Bounded,
fn saturating_rmul(self, rhs: Rhs, round_mode: RoundMode) -> Self::Output where
Self: PartialOrd + Zero + Sized,
Rhs: PartialOrd + Zero,
Self::Output: Bounded,
Saturating rounding multiplication. Computes self * rhs
, saturating at the numeric bounds
(MIN
, MAX
) instead of overflowing.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingMul<FixedPoint<i32, P>> for FixedPoint<i32, P>
This is supported on crate feature i32
only.
impl<P: Precision> RoundingMul<FixedPoint<i32, P>> for FixedPoint<i32, P>
i32
only.type Output = FixedPoint<i32, P>
type Error = ArithmeticError
Checked rounded multiplication. Returns Err
on overflow.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
fn saturating_rmul(self, rhs: Rhs, round_mode: RoundMode) -> Self::Output where
Self: PartialOrd + Zero + Sized,
Rhs: PartialOrd + Zero,
Self::Output: Bounded,
fn saturating_rmul(self, rhs: Rhs, round_mode: RoundMode) -> Self::Output where
Self: PartialOrd + Zero + Sized,
Rhs: PartialOrd + Zero,
Self::Output: Bounded,
Saturating rounding multiplication. Computes self * rhs
, saturating at the numeric bounds
(MIN
, MAX
) instead of overflowing.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingMul<FixedPoint<i64, P>> for FixedPoint<i64, P>
This is supported on crate feature i64
only.
impl<P: Precision> RoundingMul<FixedPoint<i64, P>> for FixedPoint<i64, P>
i64
only.type Output = FixedPoint<i64, P>
type Error = ArithmeticError
Checked rounded multiplication. Returns Err
on overflow.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
fn saturating_rmul(self, rhs: Rhs, round_mode: RoundMode) -> Self::Output where
Self: PartialOrd + Zero + Sized,
Rhs: PartialOrd + Zero,
Self::Output: Bounded,
fn saturating_rmul(self, rhs: Rhs, round_mode: RoundMode) -> Self::Output where
Self: PartialOrd + Zero + Sized,
Rhs: PartialOrd + Zero,
Self::Output: Bounded,
Saturating rounding multiplication. Computes self * rhs
, saturating at the numeric bounds
(MIN
, MAX
) instead of overflowing.
Because of provided RoundMode
it’s possible to perform across the FixedPoint
values. Read more
impl<P: Precision> RoundingSqrt for FixedPoint<i128, P>
This is supported on crate feature i128
only.
impl<P: Precision> RoundingSqrt for FixedPoint<i128, P>
i128
only.impl<I, P> Serialize for FixedPoint<I, P> where
I: Serialize,
Self: Display,
This is supported on crate feature serde
only.
impl<I, P> Serialize for FixedPoint<I, P> where
I: Serialize,
Self: Display,
serde
only.impl<P> EncodeLike<FixedPoint<i128, P>> for FixedPoint<i128, P>
parity
and i128
only.impl<P> EncodeLike<FixedPoint<i16, P>> for FixedPoint<i16, P>
parity
and i16
only.impl<P> EncodeLike<FixedPoint<i32, P>> for FixedPoint<i32, P>
parity
and i32
only.impl<P> EncodeLike<FixedPoint<i64, P>> for FixedPoint<i64, P>
parity
and i64
only.Auto Trait Implementations
impl<I, P> RefUnwindSafe for FixedPoint<I, P> where
I: RefUnwindSafe,
P: RefUnwindSafe,
impl<I, P> Send for FixedPoint<I, P> where
I: Send,
P: Send,
impl<I, P> Sync for FixedPoint<I, P> where
I: Sync,
P: Sync,
impl<I, P> Unpin for FixedPoint<I, P> where
I: Unpin,
P: Unpin,
impl<I, P> UnwindSafe for FixedPoint<I, P> where
I: UnwindSafe,
P: UnwindSafe,
Blanket Implementations
Mutably borrows from an owned value. Read more