pub struct NdArrayBackend<E> { /* private fields */ }

Trait Implementations§

source§

impl<E: FloatNdArrayElement> Backend for NdArrayBackend<E>

§

type Device = NdArrayDevice

Device type.
§

type FullPrecisionElem = f32

Full precision float element type.
§

type FullPrecisionBackend = NdArrayBackend<f32>

Pointer to another backend that have a full precision float element type
§

type TensorPrimitive<const D: usize> = NdArrayTensor<E, D>

Tensor primitive to be used for all float operations.
§

type FloatElem = E

Float element type.
§

type IntTensorPrimitive<const D: usize> = NdArrayTensor<i64, D>

Tensor primitive to be used for all int operations.
§

type IntElem = i64

Int element type.
§

type BoolTensorPrimitive<const D: usize> = NdArrayTensor<bool, D>

Tensor primitive to be used for all bool operations.
source§

fn ad_enabled() -> bool

If autodiff is enabled.
source§

fn name() -> String

Name of the backend.
source§

fn seed(seed: u64)

Seed the backend.
source§

impl<E: FloatNdArrayElement> BoolTensorOps<NdArrayBackend<E>> for NdArrayBackend<E>

source§

fn bool_from_data<const D: usize>( data: Data<bool, D>, _device: &NdArrayDevice ) -> NdArrayTensor<bool, D>

source§

fn bool_shape<const D: usize>( tensor: &<NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D> ) -> Shape<D>

source§

fn bool_to_data<const D: usize>( tensor: &<NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D> ) -> Data<bool, D>

source§

fn bool_into_data<const D: usize>( tensor: <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D> ) -> Data<bool, D>

source§

fn bool_to_device<const D: usize>( tensor: NdArrayTensor<bool, D>, _device: &NdArrayDevice ) -> NdArrayTensor<bool, D>

source§

fn bool_reshape<const D1: usize, const D2: usize>( tensor: NdArrayTensor<bool, D1>, shape: Shape<D2> ) -> NdArrayTensor<bool, D2>

source§

fn bool_index<const D1: usize, const D2: usize>( tensor: NdArrayTensor<bool, D1>, indexes: [Range<usize>; D2] ) -> NdArrayTensor<bool, D1>

source§

fn bool_into_int<const D: usize>( tensor: <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D> ) -> NdArrayTensor<i64, D>

source§

fn bool_device<const D: usize>( _tensor: &<NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D> ) -> <NdArrayBackend<E> as Backend>::Device

source§

fn bool_empty<const D: usize>( shape: Shape<D>, _device: &<NdArrayBackend<E> as Backend>::Device ) -> <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D>

source§

fn bool_index_assign<const D1: usize, const D2: usize>( tensor: <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D1>, indexes: [Range<usize>; D2], value: <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D1> ) -> <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D1>

source§

fn bool_cat<const D: usize>( tensors: Vec<<NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D>>, dim: usize ) -> <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D>

source§

fn bool_equal<const D: usize>( lhs: <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D>, rhs: <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D> ) -> <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D>

source§

fn bool_equal_elem<const D: usize>( lhs: <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D>, rhs: bool ) -> <NdArrayBackend<E> as Backend>::BoolTensorPrimitive<D>

source§

fn bool_repeat<const D: usize>( tensor: <B as Backend>::BoolTensorPrimitive<D>, dim: usize, times: usize ) -> <B as Backend>::BoolTensorPrimitive<D>

source§

impl<E: Clone> Clone for NdArrayBackend<E>

source§

fn clone(&self) -> NdArrayBackend<E>

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<E: Debug> Debug for NdArrayBackend<E>

source§

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

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

impl<E: Default> Default for NdArrayBackend<E>

source§

fn default() -> NdArrayBackend<E>

Returns the “default value” for a type. Read more
source§

impl<E: FloatNdArrayElement> IntTensorOps<NdArrayBackend<E>> for NdArrayBackend<E>

source§

fn int_from_data<const D: usize>( data: Data<i64, D>, _device: &NdArrayDevice ) -> NdArrayTensor<i64, D>

source§

fn int_shape<const D: usize>(tensor: &NdArrayTensor<i64, D>) -> Shape<D>

source§

fn int_to_data<const D: usize>(tensor: &NdArrayTensor<i64, D>) -> Data<i64, D>

source§

fn int_into_data<const D: usize>(tensor: NdArrayTensor<i64, D>) -> Data<i64, D>

source§

fn int_to_device<const D: usize>( tensor: NdArrayTensor<i64, D>, _device: &NdArrayDevice ) -> NdArrayTensor<i64, D>

source§

fn int_reshape<const D1: usize, const D2: usize>( tensor: NdArrayTensor<i64, D1>, shape: Shape<D2> ) -> NdArrayTensor<i64, D2>

source§

fn int_index<const D1: usize, const D2: usize>( tensor: NdArrayTensor<i64, D1>, indexes: [Range<usize>; D2] ) -> NdArrayTensor<i64, D1>

source§

fn int_device<const D: usize>( _tensor: &NdArrayTensor<i64, D> ) -> <NdArrayBackend<E> as Backend>::Device

source§

fn int_empty<const D: usize>( shape: Shape<D>, _device: &<NdArrayBackend<E> as Backend>::Device ) -> NdArrayTensor<i64, D>

source§

fn int_index_assign<const D1: usize, const D2: usize>( tensor: NdArrayTensor<i64, D1>, indexes: [Range<usize>; D2], value: NdArrayTensor<i64, D1> ) -> NdArrayTensor<i64, D1>

source§

fn int_cat<const D: usize>( tensors: Vec<NdArrayTensor<i64, D>>, dim: usize ) -> NdArrayTensor<i64, D>

source§

fn int_equal<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: NdArrayTensor<i64, D> ) -> NdArrayTensor<bool, D>

source§

fn int_equal_elem<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: i64 ) -> NdArrayTensor<bool, D>

source§

fn int_greater<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: NdArrayTensor<i64, D> ) -> NdArrayTensor<bool, D>

source§

fn int_greater_elem<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: i64 ) -> NdArrayTensor<bool, D>

source§

fn int_greater_equal<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: NdArrayTensor<i64, D> ) -> NdArrayTensor<bool, D>

source§

fn int_greater_equal_elem<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: i64 ) -> NdArrayTensor<bool, D>

source§

fn int_lower<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: NdArrayTensor<i64, D> ) -> NdArrayTensor<bool, D>

source§

fn int_lower_elem<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: i64 ) -> NdArrayTensor<bool, D>

source§

fn int_lower_equal<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: NdArrayTensor<i64, D> ) -> NdArrayTensor<bool, D>

source§

fn int_lower_equal_elem<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: i64 ) -> NdArrayTensor<bool, D>

source§

fn int_add<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: NdArrayTensor<i64, D> ) -> NdArrayTensor<i64, D>

source§

fn int_add_scalar<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: i64 ) -> NdArrayTensor<i64, D>

source§

fn int_sub<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: NdArrayTensor<i64, D> ) -> NdArrayTensor<i64, D>

source§

fn int_sub_scalar<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: i64 ) -> NdArrayTensor<i64, D>

source§

fn int_mul<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: NdArrayTensor<i64, D> ) -> NdArrayTensor<i64, D>

source§

fn int_mul_scalar<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: i64 ) -> NdArrayTensor<i64, D>

source§

fn int_div<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: NdArrayTensor<i64, D> ) -> NdArrayTensor<i64, D>

source§

fn int_div_scalar<const D: usize>( lhs: NdArrayTensor<i64, D>, rhs: i64 ) -> NdArrayTensor<i64, D>

source§

fn int_neg<const D: usize>( tensor: NdArrayTensor<i64, D> ) -> NdArrayTensor<i64, D>

source§

fn int_zeros<const D: usize>( shape: Shape<D>, device: &<NdArrayBackend<E> as Backend>::Device ) -> NdArrayTensor<i64, D>

source§

fn int_ones<const D: usize>( shape: Shape<D>, device: &<NdArrayBackend<E> as Backend>::Device ) -> NdArrayTensor<i64, D>

source§

fn int_sum<const D: usize>( tensor: NdArrayTensor<i64, D> ) -> NdArrayTensor<i64, 1>

source§

fn int_sum_dim<const D: usize>( tensor: NdArrayTensor<i64, D>, dim: usize ) -> NdArrayTensor<i64, D>

source§

fn int_mean<const D: usize>( tensor: NdArrayTensor<i64, D> ) -> NdArrayTensor<i64, 1>

source§

fn int_mean_dim<const D: usize>( tensor: NdArrayTensor<i64, D>, dim: usize ) -> NdArrayTensor<i64, D>

source§

fn int_index_select<const D: usize>( tensor: NdArrayTensor<i64, D>, indexes: NdArrayTensor<i64, D> ) -> NdArrayTensor<i64, D>

source§

fn int_index_select_assign<const D: usize>( tensor: NdArrayTensor<i64, D>, indexes: NdArrayTensor<i64, D>, value: NdArrayTensor<i64, D> ) -> NdArrayTensor<i64, D>

source§

fn int_index_select_dim<const D: usize>( tensor: NdArrayTensor<i64, D>, dim: usize, indexes: NdArrayTensor<i64, 1> ) -> NdArrayTensor<i64, D>

source§

fn int_index_select_dim_assign<const D1: usize, const D2: usize>( tensor: NdArrayTensor<i64, D1>, dim: usize, indexes: NdArrayTensor<i64, 1>, value: NdArrayTensor<i64, D2> ) -> NdArrayTensor<i64, D1>

source§

fn int_repeat<const D: usize>( tensor: <B as Backend>::IntTensorPrimitive<D>, dim: usize, times: usize ) -> <B as Backend>::IntTensorPrimitive<D>

source§

impl<E: FloatNdArrayElement> ModuleOps<NdArrayBackend<E>> for NdArrayBackend<E>

source§

fn embedding( weights: NdArrayTensor<E, 2>, indexes: NdArrayTensor<i64, 2> ) -> NdArrayTensor<E, 3>

source§

fn embedding_backward( weights: NdArrayTensor<E, 2>, output: NdArrayTensor<E, 3>, indexes: NdArrayTensor<i64, 2> ) -> NdArrayTensor<E, 2>

source§

fn conv2d( x: NdArrayTensor<E, 4>, weight: NdArrayTensor<E, 4>, bias: Option<NdArrayTensor<E, 1>>, stride: [usize; 2], padding: [usize; 2] ) -> NdArrayTensor<E, 4>

Two dimensional convolution. Read more
source§

fn max_pool2d( x: NdArrayTensor<E, 4>, kernel_size: [usize; 2], stride: [usize; 2], padding: [usize; 2] ) -> NdArrayTensor<E, 4>

Two dimensional max pooling. Read more
source§

fn max_pool2d_with_indexes( x: NdArrayTensor<E, 4>, kernel_size: [usize; 2], stride: [usize; 2], padding: [usize; 2] ) -> MaxPool2dWithIndexes<NdArrayBackend<E>>

Two dimensional max pooling with indexes. Read more
source§

fn max_pool2d_with_indexes_backward( x: NdArrayTensor<E, 4>, kernel_size: [usize; 2], stride: [usize; 2], padding: [usize; 2], output_grad: NdArrayTensor<E, 4>, indexes: NdArrayTensor<i64, 4> ) -> MaxPool2dBackward<NdArrayBackend<E>>

Backward pass for the max pooling 2d operation.
source§

fn conv2d_backward( x: <B as Backend>::TensorPrimitive<4>, weight: <B as Backend>::TensorPrimitive<4>, bias: Option<<B as Backend>::TensorPrimitive<1>>, stride: [usize; 2], output_grad: <B as Backend>::TensorPrimitive<4> ) -> Conv2dBackward<B>

Backward pass for the conv2d operation.
source§

fn conv1d( x: <B as Backend>::TensorPrimitive<3>, weight: <B as Backend>::TensorPrimitive<3>, bias: Option<<B as Backend>::TensorPrimitive<1>>, stride: usize, padding: usize ) -> <B as Backend>::TensorPrimitive<3>

One dimensional convolution. Read more
source§

fn conv1d_backward( x: <B as Backend>::TensorPrimitive<3>, weight: <B as Backend>::TensorPrimitive<3>, bias: Option<<B as Backend>::TensorPrimitive<1>>, stride: usize, output_grad: <B as Backend>::TensorPrimitive<3> ) -> Conv1dBackward<B>

Backward pass for the conv1d operation.
source§

impl<E: FloatNdArrayElement> TensorOps<NdArrayBackend<E>> for NdArrayBackend<E>

source§

fn from_data<const D: usize>( data: Data<E, D>, _device: &NdArrayDevice ) -> NdArrayTensor<E, D>

source§

fn random<const D: usize>( shape: Shape<D>, distribution: Distribution<E>, device: &NdArrayDevice ) -> NdArrayTensor<E, D>

source§

fn shape<const D: usize>(tensor: &NdArrayTensor<E, D>) -> Shape<D>

source§

fn to_data<const D: usize>( tensor: &NdArrayTensor<E, D> ) -> Data<<NdArrayBackend<E> as Backend>::FloatElem, D>

source§

fn into_data<const D: usize>( tensor: NdArrayTensor<E, D> ) -> Data<<NdArrayBackend<E> as Backend>::FloatElem, D>

source§

fn device<const D: usize>(_tensor: &NdArrayTensor<E, D>) -> NdArrayDevice

source§

fn to_device<const D: usize>( tensor: NdArrayTensor<E, D>, _device: &NdArrayDevice ) -> NdArrayTensor<E, D>

source§

fn empty<const D: usize>( shape: Shape<D>, device: &<NdArrayBackend<E> as Backend>::Device ) -> NdArrayTensor<E, D>

source§

fn add<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: NdArrayTensor<E, D> ) -> NdArrayTensor<E, D>

source§

fn add_scalar<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: E ) -> NdArrayTensor<E, D>

source§

fn sub<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: NdArrayTensor<E, D> ) -> NdArrayTensor<E, D>

source§

fn sub_scalar<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: E ) -> NdArrayTensor<E, D>

source§

fn mul<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: NdArrayTensor<E, D> ) -> NdArrayTensor<E, D>

source§

fn mul_scalar<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: E ) -> NdArrayTensor<E, D>

source§

fn div<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: NdArrayTensor<E, D> ) -> NdArrayTensor<E, D>

source§

fn div_scalar<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: E ) -> NdArrayTensor<E, D>

source§

fn matmul<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: NdArrayTensor<E, D> ) -> NdArrayTensor<E, D>

source§

fn neg<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn swap_dims<const D: usize>( tensor: NdArrayTensor<E, D>, dim1: usize, dim2: usize ) -> NdArrayTensor<E, D>

source§

fn reshape<const D1: usize, const D2: usize>( tensor: NdArrayTensor<E, D1>, shape: Shape<D2> ) -> NdArrayTensor<E, D2>

source§

fn index_select<const D: usize>( tensor: NdArrayTensor<E, D>, indexes: NdArrayTensor<i64, D> ) -> NdArrayTensor<E, D>

source§

fn index_select_assign<const D: usize>( tensor: NdArrayTensor<E, D>, indexes: NdArrayTensor<i64, D>, value: NdArrayTensor<E, D> ) -> NdArrayTensor<E, D>

source§

fn index_select_dim<const D: usize>( tensor: NdArrayTensor<E, D>, dim: usize, indexes: NdArrayTensor<i64, 1> ) -> NdArrayTensor<E, D>

source§

fn index_select_dim_assign<const D1: usize, const D2: usize>( tensor: NdArrayTensor<E, D1>, dim: usize, indexes: NdArrayTensor<i64, 1>, value: NdArrayTensor<E, D2> ) -> NdArrayTensor<E, D1>

source§

fn index<const D1: usize, const D2: usize>( tensor: NdArrayTensor<E, D1>, indexes: [Range<usize>; D2] ) -> NdArrayTensor<E, D1>

source§

fn index_assign<const D1: usize, const D2: usize>( tensor: NdArrayTensor<E, D1>, indexes: [Range<usize>; D2], value: NdArrayTensor<E, D1> ) -> NdArrayTensor<E, D1>

source§

fn mask_fill<const D: usize>( tensor: NdArrayTensor<E, D>, mask: NdArrayTensor<bool, D>, value: E ) -> NdArrayTensor<E, D>

source§

fn equal<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: NdArrayTensor<E, D> ) -> NdArrayTensor<bool, D>

source§

fn equal_elem<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: E ) -> NdArrayTensor<bool, D>

source§

fn greater<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: NdArrayTensor<E, D> ) -> NdArrayTensor<bool, D>

source§

fn greater_elem<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: E ) -> NdArrayTensor<bool, D>

source§

fn greater_equal<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: NdArrayTensor<E, D> ) -> NdArrayTensor<bool, D>

source§

fn greater_equal_elem<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: E ) -> NdArrayTensor<bool, D>

source§

fn lower<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: NdArrayTensor<E, D> ) -> NdArrayTensor<bool, D>

source§

fn lower_elem<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: E ) -> NdArrayTensor<bool, D>

source§

fn lower_equal<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: NdArrayTensor<E, D> ) -> NdArrayTensor<bool, D>

source§

fn lower_equal_elem<const D: usize>( lhs: NdArrayTensor<E, D>, rhs: E ) -> NdArrayTensor<bool, D>

source§

fn detach<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn mean<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, 1>

source§

fn sum<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, 1>

source§

fn mean_dim<const D: usize>( tensor: NdArrayTensor<E, D>, dim: usize ) -> NdArrayTensor<E, D>

source§

fn sum_dim<const D: usize>( tensor: NdArrayTensor<E, D>, dim: usize ) -> NdArrayTensor<E, D>

source§

fn to_full_precision<const D: usize>( tensor: &NdArrayTensor<E, D> ) -> NdArrayTensor<f32, D>

source§

fn from_full_precision<const D: usize>( tensor: NdArrayTensor<f32, D> ) -> NdArrayTensor<E, D>

source§

fn argmax<const D: usize>( tensor: NdArrayTensor<E, D>, dim: usize ) -> NdArrayTensor<i64, D>

source§

fn argmin<const D: usize>( tensor: NdArrayTensor<E, D>, dim: usize ) -> NdArrayTensor<i64, D>

source§

fn exp<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn log<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn log1p<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn powf<const D: usize>( tensor: NdArrayTensor<E, D>, value: f32 ) -> NdArrayTensor<E, D>

source§

fn sqrt<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn cos<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn sin<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn tanh<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn erf<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn cat<const D: usize>( tensors: Vec<NdArrayTensor<E, D>>, dim: usize ) -> NdArrayTensor<E, D>

source§

fn relu<const D: usize>(tensor: NdArrayTensor<E, D>) -> NdArrayTensor<E, D>

source§

fn zeros<const D: usize>( shape: Shape<D>, device: &<B as Backend>::Device ) -> <B as Backend>::TensorPrimitive<D>

source§

fn ones<const D: usize>( shape: Shape<D>, device: &<B as Backend>::Device ) -> <B as Backend>::TensorPrimitive<D>

source§

fn arange( range: Range<usize>, device: &<B as Backend>::Device ) -> <B as Backend>::IntTensorPrimitive<1>

source§

fn repeat<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D>, dim: usize, times: usize ) -> <B as Backend>::TensorPrimitive<D>

source§

fn transpose<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>

source§

fn require_grad<const D: usize>( tensor: <B as Backend>::TensorPrimitive<D> ) -> <B as Backend>::TensorPrimitive<D>

source§

impl<E: Copy> Copy for NdArrayBackend<E>

Auto Trait Implementations§

§

impl<E> RefUnwindSafe for NdArrayBackend<E>where E: RefUnwindSafe,

§

impl<E> Send for NdArrayBackend<E>where E: Send,

§

impl<E> Sync for NdArrayBackend<E>where E: Sync,

§

impl<E> Unpin for NdArrayBackend<E>where E: Unpin,

§

impl<E> UnwindSafe for NdArrayBackend<E>where E: UnwindSafe,

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,

const: unstable · source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

const: unstable · source§

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

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

const: unstable · source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

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

const: unstable · 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.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.
const: unstable · 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.
const: unstable · source§

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

Performs the conversion.
§

impl<V, T> VZip<V> for Twhere V: MultiLane<T>,

§

fn vzip(self) -> V