Trait float_eq::FloatEqDebugUlpsDiff [−][src]
pub trait FloatEqDebugUlpsDiff {
type DebugUlpsDiff;
}Per-field results of ULPs based diff calculations.
This trait establishes a one-to-one relation between an IEEE floating point
type and a type whose fields are expected to be structurally identical but
specified as the result of calculating a diff in ULPs. It is used by testing
and debugging tools to show the difference between two values on a per-field
basis and is built for clarity, not runtime efficiency. The DebugUlpsDiff
type alias exists to simplify usage, for example DebugUlpsDiff<f32> is
Option<u32>. Usually, this type is named FooDebugUlpsDiff for a given
type Foo.
To implement this trait over a new type, see How to compare custom types.
Associated Types
type DebugUlpsDiff[src]
A structurally identical type to Self, with fields recursively wrapped
by DebugUlpsDiff.
Implementations on Foreign Types
impl<T: FloatEqDebugUlpsDiff, const N: usize> FloatEqDebugUlpsDiff for [T; N][src]
impl<T: FloatEqDebugUlpsDiff, const N: usize> FloatEqDebugUlpsDiff for [T; N][src]type DebugUlpsDiff = [DebugUlpsDiff<T>; N]
impl<T: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for Option<T>[src]
impl<T: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for Option<T>[src]type DebugUlpsDiff = Option<DebugUlpsDiff<T>>
impl FloatEqDebugUlpsDiff for f32[src]
impl FloatEqDebugUlpsDiff for f32[src]type DebugUlpsDiff = Option<u32>
impl FloatEqDebugUlpsDiff for f64[src]
impl FloatEqDebugUlpsDiff for f64[src]type DebugUlpsDiff = Option<u64>
impl FloatEqDebugUlpsDiff for ()[src]
impl FloatEqDebugUlpsDiff for ()[src]type DebugUlpsDiff = ()
impl<A: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A,)[src]
impl<A: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A,)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>,)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>, DebugUlpsDiff<C>)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>, DebugUlpsDiff<C>, DebugUlpsDiff<D>)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>, DebugUlpsDiff<C>, DebugUlpsDiff<D>, DebugUlpsDiff<E>)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>, DebugUlpsDiff<C>, DebugUlpsDiff<D>, DebugUlpsDiff<E>, DebugUlpsDiff<F>)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>, DebugUlpsDiff<C>, DebugUlpsDiff<D>, DebugUlpsDiff<E>, DebugUlpsDiff<F>, DebugUlpsDiff<G>)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff, H: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G, H)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff, H: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G, H)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>, DebugUlpsDiff<C>, DebugUlpsDiff<D>, DebugUlpsDiff<E>, DebugUlpsDiff<F>, DebugUlpsDiff<G>, DebugUlpsDiff<H>)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff, H: FloatEqDebugUlpsDiff, I: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G, H, I)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff, H: FloatEqDebugUlpsDiff, I: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G, H, I)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>, DebugUlpsDiff<C>, DebugUlpsDiff<D>, DebugUlpsDiff<E>, DebugUlpsDiff<F>, DebugUlpsDiff<G>, DebugUlpsDiff<H>, DebugUlpsDiff<I>)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff, H: FloatEqDebugUlpsDiff, I: FloatEqDebugUlpsDiff, J: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G, H, I, J)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff, H: FloatEqDebugUlpsDiff, I: FloatEqDebugUlpsDiff, J: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G, H, I, J)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>, DebugUlpsDiff<C>, DebugUlpsDiff<D>, DebugUlpsDiff<E>, DebugUlpsDiff<F>, DebugUlpsDiff<G>, DebugUlpsDiff<H>, DebugUlpsDiff<I>, DebugUlpsDiff<J>)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff, H: FloatEqDebugUlpsDiff, I: FloatEqDebugUlpsDiff, J: FloatEqDebugUlpsDiff, K: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G, H, I, J, K)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff, H: FloatEqDebugUlpsDiff, I: FloatEqDebugUlpsDiff, J: FloatEqDebugUlpsDiff, K: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G, H, I, J, K)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>, DebugUlpsDiff<C>, DebugUlpsDiff<D>, DebugUlpsDiff<E>, DebugUlpsDiff<F>, DebugUlpsDiff<G>, DebugUlpsDiff<H>, DebugUlpsDiff<I>, DebugUlpsDiff<J>, DebugUlpsDiff<K>)
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff, H: FloatEqDebugUlpsDiff, I: FloatEqDebugUlpsDiff, J: FloatEqDebugUlpsDiff, K: FloatEqDebugUlpsDiff, L: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G, H, I, J, K, L)[src]
impl<A: FloatEqDebugUlpsDiff, B: FloatEqDebugUlpsDiff, C: FloatEqDebugUlpsDiff, D: FloatEqDebugUlpsDiff, E: FloatEqDebugUlpsDiff, F: FloatEqDebugUlpsDiff, G: FloatEqDebugUlpsDiff, H: FloatEqDebugUlpsDiff, I: FloatEqDebugUlpsDiff, J: FloatEqDebugUlpsDiff, K: FloatEqDebugUlpsDiff, L: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for (A, B, C, D, E, F, G, H, I, J, K, L)[src]type DebugUlpsDiff = (DebugUlpsDiff<A>, DebugUlpsDiff<B>, DebugUlpsDiff<C>, DebugUlpsDiff<D>, DebugUlpsDiff<E>, DebugUlpsDiff<F>, DebugUlpsDiff<G>, DebugUlpsDiff<H>, DebugUlpsDiff<I>, DebugUlpsDiff<J>, DebugUlpsDiff<K>, DebugUlpsDiff<L>)
impl<T: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for Vec<T>[src]
impl<T: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for Vec<T>[src]type DebugUlpsDiff = Vec<DebugUlpsDiff<T>>
impl<T: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for VecDeque<T>[src]
impl<T: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for VecDeque<T>[src]type DebugUlpsDiff = VecDeque<DebugUlpsDiff<T>>
impl<T: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for LinkedList<T>[src]
impl<T: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for LinkedList<T>[src]type DebugUlpsDiff = LinkedList<DebugUlpsDiff<T>>
impl<K, V, S> FloatEqDebugUlpsDiff for HashMap<K, V, S> where
V: FloatEqDebugUlpsDiff, [src]
impl<K, V, S> FloatEqDebugUlpsDiff for HashMap<K, V, S> where
V: FloatEqDebugUlpsDiff, [src]type DebugUlpsDiff = HashMap<K, DebugUlpsDiff<V>, S>
impl<K, V> FloatEqDebugUlpsDiff for BTreeMap<K, V> where
V: FloatEqDebugUlpsDiff, [src]
impl<K, V> FloatEqDebugUlpsDiff for BTreeMap<K, V> where
V: FloatEqDebugUlpsDiff, [src]type DebugUlpsDiff = BTreeMap<K, DebugUlpsDiff<V>>
impl<T: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for Complex<T>[src]
impl<T: FloatEqDebugUlpsDiff> FloatEqDebugUlpsDiff for Complex<T>[src]