pub union MultiVector {
    /* private fields */
}

Implementations§

source§

impl MultiVector

source

pub const fn new( scalar: f32, e23: f32, _e13: f32, e12: f32, e0: f32, _e023: f32, e013: f32, _e012: f32, e123: f32, e1: f32, e2: f32, e3: f32, e0123: f32, e01: f32, e02: f32, e03: f32 ) -> Self

source

pub const fn from_groups( g0: Simd32x4, g1: Simd32x4, g2: Simd32x4, g3: Simd32x4 ) -> Self

source

pub fn group0(&self) -> Simd32x4

source

pub fn group0_mut(&mut self) -> &mut Simd32x4

source

pub fn group1(&self) -> Simd32x4

source

pub fn group1_mut(&mut self) -> &mut Simd32x4

source

pub fn group2(&self) -> Simd32x4

source

pub fn group2_mut(&mut self) -> &mut Simd32x4

source

pub fn group3(&self) -> Simd32x4

source

pub fn group3_mut(&mut self) -> &mut Simd32x4

Trait Implementations§

source§

impl Add<IdealPoint> for MultiVector

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: IdealPoint) -> MultiVector

Performs the + operation. Read more
source§

impl Add<Line> for MultiVector

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: Line) -> MultiVector

Performs the + operation. Read more
source§

impl Add<Motor> for MultiVector

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: Motor) -> MultiVector

Performs the + operation. Read more
source§

impl Add<MultiVector> for IdealPoint

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: MultiVector) -> MultiVector

Performs the + operation. Read more
source§

impl Add<MultiVector> for Line

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: MultiVector) -> MultiVector

Performs the + operation. Read more
source§

impl Add<MultiVector> for Motor

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: MultiVector) -> MultiVector

Performs the + operation. Read more
source§

impl Add<MultiVector> for MultiVector

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: MultiVector) -> MultiVector

Performs the + operation. Read more
source§

impl Add<MultiVector> for Plane

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: MultiVector) -> MultiVector

Performs the + operation. Read more
source§

impl Add<MultiVector> for Point

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: MultiVector) -> MultiVector

Performs the + operation. Read more
source§

impl Add<MultiVector> for PointAndPlane

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: MultiVector) -> MultiVector

Performs the + operation. Read more
source§

impl Add<MultiVector> for Rotor

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: MultiVector) -> MultiVector

Performs the + operation. Read more
source§

impl Add<MultiVector> for Translator

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: MultiVector) -> MultiVector

Performs the + operation. Read more
source§

impl Add<MultiVector> for f32

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: MultiVector) -> MultiVector

Performs the + operation. Read more
source§

impl Add<Plane> for MultiVector

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: Plane) -> MultiVector

Performs the + operation. Read more
source§

impl Add<Point> for MultiVector

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: Point) -> MultiVector

Performs the + operation. Read more
source§

impl Add<PointAndPlane> for MultiVector

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: PointAndPlane) -> MultiVector

Performs the + operation. Read more
source§

impl Add<Rotor> for MultiVector

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: Rotor) -> MultiVector

Performs the + operation. Read more
source§

impl Add<Translator> for MultiVector

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: Translator) -> MultiVector

Performs the + operation. Read more
source§

impl Add<f32> for MultiVector

§

type Output = MultiVector

The resulting type after applying the + operator.
source§

fn add(self, other: f32) -> MultiVector

Performs the + operation. Read more
source§

impl AddAssign<IdealPoint> for MultiVector

source§

fn add_assign(&mut self, other: IdealPoint)

Performs the += operation. Read more
source§

impl AddAssign<Line> for MultiVector

source§

fn add_assign(&mut self, other: Line)

Performs the += operation. Read more
source§

impl AddAssign<Motor> for MultiVector

source§

fn add_assign(&mut self, other: Motor)

Performs the += operation. Read more
source§

impl AddAssign<MultiVector> for MultiVector

source§

fn add_assign(&mut self, other: MultiVector)

Performs the += operation. Read more
source§

impl AddAssign<Plane> for MultiVector

source§

fn add_assign(&mut self, other: Plane)

Performs the += operation. Read more
source§

impl AddAssign<Point> for MultiVector

source§

fn add_assign(&mut self, other: Point)

Performs the += operation. Read more
source§

impl AddAssign<PointAndPlane> for MultiVector

source§

fn add_assign(&mut self, other: PointAndPlane)

Performs the += operation. Read more
source§

impl AddAssign<Rotor> for MultiVector

source§

fn add_assign(&mut self, other: Rotor)

Performs the += operation. Read more
source§

impl AddAssign<Translator> for MultiVector

source§

fn add_assign(&mut self, other: Translator)

Performs the += operation. Read more
source§

impl AddAssign<f32> for MultiVector

source§

fn add_assign(&mut self, other: f32)

Performs the += operation. Read more
source§

impl Automorphism for MultiVector

source§

impl Clone for MultiVector

source§

fn clone(&self) -> MultiVector

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 Conjugation for MultiVector

source§

impl Debug for MultiVector

source§

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

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

impl Div<MultiVector> for MultiVector

§

type Output = MultiVector

The resulting type after applying the / operator.
source§

fn div(self, other: MultiVector) -> MultiVector

Performs the / operation. Read more
source§

impl DivAssign<MultiVector> for MultiVector

source§

fn div_assign(&mut self, other: MultiVector)

Performs the /= operation. Read more
source§

impl Dual for MultiVector

source§

impl From<[f32; 16]> for MultiVector

source§

fn from(array: [f32; 16]) -> Self

Converts to this type from the input type.
source§

impl From<MultiVector> for [f32; 16]

source§

fn from(vector: MultiVector) -> Self

Converts to this type from the input type.
source§

impl GeometricProduct<IdealPoint> for MultiVector

source§

impl GeometricProduct<Line> for MultiVector

source§

impl GeometricProduct<Motor> for MultiVector

source§

impl GeometricProduct<MultiVector> for IdealPoint

source§

impl GeometricProduct<MultiVector> for Line

source§

impl GeometricProduct<MultiVector> for Motor

source§

impl GeometricProduct<MultiVector> for MultiVector

source§

impl GeometricProduct<MultiVector> for Plane

source§

impl GeometricProduct<MultiVector> for Point

source§

impl GeometricProduct<MultiVector> for PointAndPlane

source§

impl GeometricProduct<MultiVector> for Rotor

source§

impl GeometricProduct<MultiVector> for Translator

source§

impl GeometricProduct<MultiVector> for f32

source§

impl GeometricProduct<Plane> for MultiVector

source§

impl GeometricProduct<Point> for MultiVector

source§

impl GeometricProduct<PointAndPlane> for MultiVector

source§

impl GeometricProduct<Rotor> for MultiVector

source§

impl GeometricProduct<Translator> for MultiVector

source§

impl GeometricProduct<f32> for MultiVector

source§

impl GeometricQuotient<IdealPoint> for MultiVector

source§

impl GeometricQuotient<Line> for MultiVector

source§

impl GeometricQuotient<Motor> for MultiVector

source§

impl GeometricQuotient<MultiVector> for IdealPoint

source§

impl GeometricQuotient<MultiVector> for Line

source§

impl GeometricQuotient<MultiVector> for Motor

source§

impl GeometricQuotient<MultiVector> for MultiVector

source§

impl GeometricQuotient<MultiVector> for Plane

source§

impl GeometricQuotient<MultiVector> for Point

source§

impl GeometricQuotient<MultiVector> for PointAndPlane

source§

impl GeometricQuotient<MultiVector> for Rotor

source§

impl GeometricQuotient<MultiVector> for Translator

source§

impl GeometricQuotient<MultiVector> for f32

source§

impl GeometricQuotient<Plane> for MultiVector

source§

impl GeometricQuotient<Point> for MultiVector

source§

impl GeometricQuotient<PointAndPlane> for MultiVector

source§

impl GeometricQuotient<Rotor> for MultiVector

source§

impl GeometricQuotient<Translator> for MultiVector

source§

impl GeometricQuotient<f32> for MultiVector

source§

impl Index<usize> for MultiVector

§

type Output = f32

The returned type after indexing.
source§

fn index(&self, index: usize) -> &Self::Output

Performs the indexing (container[index]) operation. Read more
source§

impl IndexMut<usize> for MultiVector

source§

fn index_mut(&mut self, index: usize) -> &mut Self::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl InnerProduct<Motor> for MultiVector

source§

impl InnerProduct<MultiVector> for Motor

source§

impl InnerProduct<MultiVector> for MultiVector

source§

impl InnerProduct<MultiVector> for Rotor

source§

impl InnerProduct<MultiVector> for Translator

source§

impl InnerProduct<MultiVector> for f32

source§

impl InnerProduct<Rotor> for MultiVector

source§

impl InnerProduct<Translator> for MultiVector

source§

impl InnerProduct<f32> for MultiVector

source§

impl Into<IdealPoint> for MultiVector

source§

fn into(self) -> IdealPoint

Converts this type into the (usually inferred) input type.
source§

impl Into<Line> for MultiVector

source§

fn into(self) -> Line

Converts this type into the (usually inferred) input type.
source§

impl Into<Motor> for MultiVector

source§

fn into(self) -> Motor

Converts this type into the (usually inferred) input type.
source§

impl Into<Plane> for MultiVector

source§

fn into(self) -> Plane

Converts this type into the (usually inferred) input type.
source§

impl Into<Point> for MultiVector

source§

fn into(self) -> Point

Converts this type into the (usually inferred) input type.
source§

impl Into<PointAndPlane> for MultiVector

source§

fn into(self) -> PointAndPlane

Converts this type into the (usually inferred) input type.
source§

impl Into<Rotor> for MultiVector

source§

fn into(self) -> Rotor

Converts this type into the (usually inferred) input type.
source§

impl Into<Translator> for MultiVector

source§

fn into(self) -> Translator

Converts this type into the (usually inferred) input type.
source§

impl Into<f32> for MultiVector

source§

fn into(self) -> f32

Converts this type into the (usually inferred) input type.
source§

impl Inverse for MultiVector

source§

impl LeftContraction<Motor> for MultiVector

source§

impl LeftContraction<MultiVector> for Motor

source§

impl LeftContraction<MultiVector> for MultiVector

source§

impl LeftContraction<MultiVector> for Rotor

source§

impl LeftContraction<MultiVector> for Translator

source§

impl LeftContraction<MultiVector> for f32

source§

impl LeftContraction<f32> for MultiVector

§

type Output = f32

source§

fn left_contraction(self, other: f32) -> f32

source§

impl Magnitude for MultiVector

§

type Output = f32

source§

fn magnitude(self) -> f32

source§

impl Mul<MultiVector> for MultiVector

§

type Output = MultiVector

The resulting type after applying the * operator.
source§

fn mul(self, other: MultiVector) -> MultiVector

Performs the * operation. Read more
source§

impl Mul<f32> for MultiVector

§

type Output = MultiVector

The resulting type after applying the * operator.
source§

fn mul(self, other: f32) -> MultiVector

Performs the * operation. Read more
source§

impl MulAssign<MultiVector> for MultiVector

source§

fn mul_assign(&mut self, other: MultiVector)

Performs the *= operation. Read more
source§

impl MulAssign<f32> for MultiVector

source§

fn mul_assign(&mut self, other: f32)

Performs the *= operation. Read more
source§

impl Neg for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn neg(self) -> MultiVector

Performs the unary - operation. Read more
source§

impl One for MultiVector

source§

fn one() -> Self

source§

impl OuterProduct<Motor> for MultiVector

source§

impl OuterProduct<MultiVector> for Motor

source§

impl OuterProduct<MultiVector> for MultiVector

source§

impl OuterProduct<MultiVector> for Rotor

source§

impl OuterProduct<MultiVector> for Translator

source§

impl OuterProduct<MultiVector> for f32

source§

impl OuterProduct<Rotor> for MultiVector

source§

impl OuterProduct<Translator> for MultiVector

source§

impl OuterProduct<f32> for MultiVector

source§

impl Powi for MultiVector

§

type Output = MultiVector

source§

fn powi(self, exponent: isize) -> MultiVector

source§

impl RegressiveProduct<Motor> for MultiVector

source§

impl RegressiveProduct<MultiVector> for Motor

source§

impl RegressiveProduct<MultiVector> for MultiVector

source§

impl RegressiveProduct<MultiVector> for f32

source§

impl RegressiveProduct<f32> for MultiVector

§

type Output = f32

source§

fn regressive_product(self, other: f32) -> f32

source§

impl Reversal for MultiVector

source§

impl RightContraction<Motor> for MultiVector

source§

impl RightContraction<MultiVector> for Motor

source§

impl RightContraction<MultiVector> for MultiVector

source§

impl RightContraction<MultiVector> for f32

source§

impl RightContraction<Rotor> for MultiVector

source§

impl RightContraction<Translator> for MultiVector

source§

impl RightContraction<f32> for MultiVector

source§

impl ScalarProduct<IdealPoint> for MultiVector

source§

impl ScalarProduct<Line> for MultiVector

§

type Output = f32

source§

fn scalar_product(self, other: Line) -> f32

source§

impl ScalarProduct<Motor> for MultiVector

§

type Output = f32

source§

fn scalar_product(self, other: Motor) -> f32

source§

impl ScalarProduct<MultiVector> for IdealPoint

source§

impl ScalarProduct<MultiVector> for Line

source§

impl ScalarProduct<MultiVector> for Motor

source§

impl ScalarProduct<MultiVector> for MultiVector

source§

impl ScalarProduct<MultiVector> for Plane

source§

impl ScalarProduct<MultiVector> for Point

source§

impl ScalarProduct<MultiVector> for PointAndPlane

source§

impl ScalarProduct<MultiVector> for Rotor

source§

impl ScalarProduct<MultiVector> for Translator

source§

impl ScalarProduct<MultiVector> for f32

source§

impl ScalarProduct<Plane> for MultiVector

§

type Output = f32

source§

fn scalar_product(self, other: Plane) -> f32

source§

impl ScalarProduct<Point> for MultiVector

§

type Output = f32

source§

fn scalar_product(self, other: Point) -> f32

source§

impl ScalarProduct<PointAndPlane> for MultiVector

source§

impl ScalarProduct<Rotor> for MultiVector

§

type Output = f32

source§

fn scalar_product(self, other: Rotor) -> f32

source§

impl ScalarProduct<Translator> for MultiVector

source§

impl ScalarProduct<f32> for MultiVector

§

type Output = f32

source§

fn scalar_product(self, other: f32) -> f32

source§

impl Signum for MultiVector

source§

impl SquaredMagnitude for MultiVector

source§

impl Sub<IdealPoint> for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: IdealPoint) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<Line> for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: Line) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<Motor> for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: Motor) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<MultiVector> for IdealPoint

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: MultiVector) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<MultiVector> for Line

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: MultiVector) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<MultiVector> for Motor

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: MultiVector) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<MultiVector> for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: MultiVector) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<MultiVector> for Plane

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: MultiVector) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<MultiVector> for Point

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: MultiVector) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<MultiVector> for PointAndPlane

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: MultiVector) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<MultiVector> for Rotor

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: MultiVector) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<MultiVector> for Translator

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: MultiVector) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<MultiVector> for f32

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: MultiVector) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<Plane> for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: Plane) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<Point> for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: Point) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<PointAndPlane> for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: PointAndPlane) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<Rotor> for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: Rotor) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<Translator> for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: Translator) -> MultiVector

Performs the - operation. Read more
source§

impl Sub<f32> for MultiVector

§

type Output = MultiVector

The resulting type after applying the - operator.
source§

fn sub(self, other: f32) -> MultiVector

Performs the - operation. Read more
source§

impl SubAssign<IdealPoint> for MultiVector

source§

fn sub_assign(&mut self, other: IdealPoint)

Performs the -= operation. Read more
source§

impl SubAssign<Line> for MultiVector

source§

fn sub_assign(&mut self, other: Line)

Performs the -= operation. Read more
source§

impl SubAssign<Motor> for MultiVector

source§

fn sub_assign(&mut self, other: Motor)

Performs the -= operation. Read more
source§

impl SubAssign<MultiVector> for MultiVector

source§

fn sub_assign(&mut self, other: MultiVector)

Performs the -= operation. Read more
source§

impl SubAssign<Plane> for MultiVector

source§

fn sub_assign(&mut self, other: Plane)

Performs the -= operation. Read more
source§

impl SubAssign<Point> for MultiVector

source§

fn sub_assign(&mut self, other: Point)

Performs the -= operation. Read more
source§

impl SubAssign<PointAndPlane> for MultiVector

source§

fn sub_assign(&mut self, other: PointAndPlane)

Performs the -= operation. Read more
source§

impl SubAssign<Rotor> for MultiVector

source§

fn sub_assign(&mut self, other: Rotor)

Performs the -= operation. Read more
source§

impl SubAssign<Translator> for MultiVector

source§

fn sub_assign(&mut self, other: Translator)

Performs the -= operation. Read more
source§

impl SubAssign<f32> for MultiVector

source§

fn sub_assign(&mut self, other: f32)

Performs the -= operation. Read more
source§

impl Transformation<IdealPoint> for MultiVector

source§

impl Transformation<Line> for MultiVector

§

type Output = Line

source§

fn transformation(self, other: Line) -> Line

source§

impl Transformation<Motor> for MultiVector

§

type Output = Motor

source§

fn transformation(self, other: Motor) -> Motor

source§

impl Transformation<MultiVector> for IdealPoint

source§

impl Transformation<MultiVector> for Line

source§

impl Transformation<MultiVector> for Motor

source§

impl Transformation<MultiVector> for MultiVector

source§

impl Transformation<MultiVector> for Plane

source§

impl Transformation<MultiVector> for Point

source§

impl Transformation<MultiVector> for PointAndPlane

source§

impl Transformation<MultiVector> for Rotor

source§

impl Transformation<MultiVector> for Translator

source§

impl Transformation<MultiVector> for f32

source§

impl Transformation<Plane> for MultiVector

§

type Output = Plane

source§

fn transformation(self, other: Plane) -> Plane

source§

impl Transformation<Point> for MultiVector

§

type Output = Point

source§

fn transformation(self, other: Point) -> Point

source§

impl Transformation<PointAndPlane> for MultiVector

source§

impl Transformation<Rotor> for MultiVector

§

type Output = Rotor

source§

fn transformation(self, other: Rotor) -> Rotor

source§

impl Transformation<Translator> for MultiVector

source§

impl Transformation<f32> for MultiVector

§

type Output = f32

source§

fn transformation(self, other: f32) -> f32

source§

impl Zero for MultiVector

source§

fn zero() -> Self

source§

impl Copy for MultiVector

Auto Trait Implementations§

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

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

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere 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 Twhere 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 Twhere 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 Twhere 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 Twhere 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.