Struct tract_core::internal::tract_ndarray::Dim
source · [−]pub struct Dim<I>where
I: ?Sized,{ /* private fields */ }
Expand description
Dimension description.
Dim
describes the number of axes and the length of each axis
in an array. It is also used as an index type.
See also the Dimension
trait for its methods and
operations.
Examples
To create an array with a particular dimension, you’d just pass
a tuple (in this example (3, 2) is used), which is converted to
Dim
by the array constructor.
use ndarray::Array2;
use ndarray::Dim;
let mut array = Array2::zeros((3, 2));
array[[0, 0]] = 1.;
assert_eq!(array.raw_dim(), Dim([3, 2]));
Implementations
Trait Implementations
sourceimpl<'a, I> AddAssign<&'a Dim<I>> for Dim<I>where
Dim<I>: Dimension,
impl<'a, I> AddAssign<&'a Dim<I>> for Dim<I>where
Dim<I>: Dimension,
sourcefn add_assign(&mut self, rhs: &Dim<I>)
fn add_assign(&mut self, rhs: &Dim<I>)
Performs the
+=
operation. Read moresourceimpl<I> AddAssign<Dim<I>> for Dim<I>where
Dim<I>: Dimension,
impl<I> AddAssign<Dim<I>> for Dim<I>where
Dim<I>: Dimension,
sourcefn add_assign(&mut self, rhs: Dim<I>)
fn add_assign(&mut self, rhs: Dim<I>)
Performs the
+=
operation. Read moresourceimpl AddAssign<usize> for Dim<[usize; 1]>
impl AddAssign<usize> for Dim<[usize; 1]>
sourcefn add_assign(&mut self, rhs: usize)
fn add_assign(&mut self, rhs: usize)
Performs the
+=
operation. Read moresourceimpl<D> DimAdd<D> for Dim<[usize; 0]>where
D: Dimension,
impl<D> DimAdd<D> for Dim<[usize; 0]>where
D: Dimension,
type Output = D
type Output = D
The sum of the two dimensions.
sourceimpl Dimension for Dim<[usize; 0]>
impl Dimension for Dim<[usize; 0]>
sourceconst NDIM: Option<usize> = Some(0)
const NDIM: Option<usize> = Some(0)
For fixed-size dimension representations (e.g.
Ix2
), this should be
Some(ndim)
, and for variable-size dimension representations (e.g.
IxDyn
), this should be None
. Read moresourcefn into_pattern(self) -> <Dim<[usize; 0]> as Dimension>::Pattern
fn into_pattern(self) -> <Dim<[usize; 0]> as Dimension>::Pattern
Convert the dimension into a pattern matching friendly value.
sourcefn zeros(ndim: usize) -> Dim<[usize; 0]>
fn zeros(ndim: usize) -> Dim<[usize; 0]>
Creates a dimension of all zeros with the specified ndim. Read more
sourcefn size_checked(&self) -> Option<usize>
fn size_checked(&self) -> Option<usize>
Compute the size while checking for overflow.
sourcefn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
fn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
Borrow as a read-only array view.
sourceimpl Dimension for Dim<[usize; 1]>
impl Dimension for Dim<[usize; 1]>
sourceconst NDIM: Option<usize> = Some(1)
const NDIM: Option<usize> = Some(1)
For fixed-size dimension representations (e.g.
Ix2
), this should be
Some(ndim)
, and for variable-size dimension representations (e.g.
IxDyn
), this should be None
. Read moresourcefn into_pattern(self) -> <Dim<[usize; 1]> as Dimension>::Pattern
fn into_pattern(self) -> <Dim<[usize; 1]> as Dimension>::Pattern
Convert the dimension into a pattern matching friendly value.
sourcefn zeros(ndim: usize) -> Dim<[usize; 1]>
fn zeros(ndim: usize) -> Dim<[usize; 1]>
Creates a dimension of all zeros with the specified ndim. Read more
sourcefn size_checked(&self) -> Option<usize>
fn size_checked(&self) -> Option<usize>
Compute the size while checking for overflow.
sourcefn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
fn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
Borrow as a read-only array view.
sourceimpl Dimension for Dim<[usize; 2]>
impl Dimension for Dim<[usize; 2]>
sourceconst NDIM: Option<usize> = Some(2)
const NDIM: Option<usize> = Some(2)
For fixed-size dimension representations (e.g.
Ix2
), this should be
Some(ndim)
, and for variable-size dimension representations (e.g.
IxDyn
), this should be None
. Read moresourcefn into_pattern(self) -> <Dim<[usize; 2]> as Dimension>::Pattern
fn into_pattern(self) -> <Dim<[usize; 2]> as Dimension>::Pattern
Convert the dimension into a pattern matching friendly value.
sourcefn zeros(ndim: usize) -> Dim<[usize; 2]>
fn zeros(ndim: usize) -> Dim<[usize; 2]>
Creates a dimension of all zeros with the specified ndim. Read more
sourcefn size_checked(&self) -> Option<usize>
fn size_checked(&self) -> Option<usize>
Compute the size while checking for overflow.
sourcefn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
fn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
Borrow as a read-only array view.
sourceimpl Dimension for Dim<[usize; 3]>
impl Dimension for Dim<[usize; 3]>
sourceconst NDIM: Option<usize> = Some(3)
const NDIM: Option<usize> = Some(3)
For fixed-size dimension representations (e.g.
Ix2
), this should be
Some(ndim)
, and for variable-size dimension representations (e.g.
IxDyn
), this should be None
. Read moretype Pattern = (usize, usize, usize)
type Pattern = (usize, usize, usize)
Pattern matching friendly form of the dimension value. Read more
sourcefn into_pattern(self) -> <Dim<[usize; 3]> as Dimension>::Pattern
fn into_pattern(self) -> <Dim<[usize; 3]> as Dimension>::Pattern
Convert the dimension into a pattern matching friendly value.
sourcefn zeros(ndim: usize) -> Dim<[usize; 3]>
fn zeros(ndim: usize) -> Dim<[usize; 3]>
Creates a dimension of all zeros with the specified ndim. Read more
sourcefn size_checked(&self) -> Option<usize>
fn size_checked(&self) -> Option<usize>
Compute the size while checking for overflow.
sourcefn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
fn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
Borrow as a read-only array view.
sourceimpl Dimension for Dim<[usize; 4]>
impl Dimension for Dim<[usize; 4]>
sourceconst NDIM: Option<usize> = Some(4)
const NDIM: Option<usize> = Some(4)
For fixed-size dimension representations (e.g.
Ix2
), this should be
Some(ndim)
, and for variable-size dimension representations (e.g.
IxDyn
), this should be None
. Read moretype Pattern = (usize, usize, usize, usize)
type Pattern = (usize, usize, usize, usize)
Pattern matching friendly form of the dimension value. Read more
sourcefn into_pattern(self) -> <Dim<[usize; 4]> as Dimension>::Pattern
fn into_pattern(self) -> <Dim<[usize; 4]> as Dimension>::Pattern
Convert the dimension into a pattern matching friendly value.
sourcefn zeros(ndim: usize) -> Dim<[usize; 4]>
fn zeros(ndim: usize) -> Dim<[usize; 4]>
Creates a dimension of all zeros with the specified ndim. Read more
sourcefn size_checked(&self) -> Option<usize>
fn size_checked(&self) -> Option<usize>
Compute the size while checking for overflow.
sourcefn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
fn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
Borrow as a read-only array view.
sourceimpl Dimension for Dim<[usize; 5]>
impl Dimension for Dim<[usize; 5]>
sourceconst NDIM: Option<usize> = Some(5)
const NDIM: Option<usize> = Some(5)
For fixed-size dimension representations (e.g.
Ix2
), this should be
Some(ndim)
, and for variable-size dimension representations (e.g.
IxDyn
), this should be None
. Read moretype Pattern = (usize, usize, usize, usize, usize)
type Pattern = (usize, usize, usize, usize, usize)
Pattern matching friendly form of the dimension value. Read more
sourcefn into_pattern(self) -> <Dim<[usize; 5]> as Dimension>::Pattern
fn into_pattern(self) -> <Dim<[usize; 5]> as Dimension>::Pattern
Convert the dimension into a pattern matching friendly value.
sourcefn zeros(ndim: usize) -> Dim<[usize; 5]>
fn zeros(ndim: usize) -> Dim<[usize; 5]>
Creates a dimension of all zeros with the specified ndim. Read more
sourcefn size_checked(&self) -> Option<usize>
fn size_checked(&self) -> Option<usize>
Compute the size while checking for overflow.
sourcefn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
fn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
Borrow as a read-only array view.
sourceimpl Dimension for Dim<[usize; 6]>
impl Dimension for Dim<[usize; 6]>
sourceconst NDIM: Option<usize> = Some(6)
const NDIM: Option<usize> = Some(6)
For fixed-size dimension representations (e.g.
Ix2
), this should be
Some(ndim)
, and for variable-size dimension representations (e.g.
IxDyn
), this should be None
. Read moretype Pattern = (usize, usize, usize, usize, usize, usize)
type Pattern = (usize, usize, usize, usize, usize, usize)
Pattern matching friendly form of the dimension value. Read more
sourcefn into_pattern(self) -> <Dim<[usize; 6]> as Dimension>::Pattern
fn into_pattern(self) -> <Dim<[usize; 6]> as Dimension>::Pattern
Convert the dimension into a pattern matching friendly value.
sourcefn zeros(ndim: usize) -> Dim<[usize; 6]>
fn zeros(ndim: usize) -> Dim<[usize; 6]>
Creates a dimension of all zeros with the specified ndim. Read more
sourcefn size_checked(&self) -> Option<usize>
fn size_checked(&self) -> Option<usize>
Compute the size while checking for overflow.
sourcefn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
fn as_array_view(&self) -> ArrayBase<ViewRepr<&usize>, Dim<[usize; 1]>>
Borrow as a read-only array view.
sourceimpl Dimension for Dim<IxDynImpl>
impl Dimension for Dim<IxDynImpl>
IxDyn is a “dynamic” index, pretty hard to use when indexing, and memory wasteful, but it allows an arbitrary and dynamic number of axes.
sourceconst NDIM: Option<usize> = None
const NDIM: Option<usize> = None
For fixed-size dimension representations (e.g.
Ix2
), this should be
Some(ndim)
, and for variable-size dimension representations (e.g.
IxDyn
), this should be None
. Read moresourcefn into_pattern(self) -> <Dim<IxDynImpl> as Dimension>::Pattern
fn into_pattern(self) -> <Dim<IxDynImpl> as Dimension>::Pattern
Convert the dimension into a pattern matching friendly value.
sourcefn zeros(ndim: usize) -> Dim<IxDynImpl>
fn zeros(ndim: usize) -> Dim<IxDynImpl>
Creates a dimension of all zeros with the specified ndim. Read more
sourcefn into_dyn(self) -> Dim<IxDynImpl>
fn into_dyn(self) -> Dim<IxDynImpl>
Convert the dimensional into a dynamic dimensional (IxDyn).
sourcefn size_checked(&self) -> Option<usize>
fn size_checked(&self) -> Option<usize>
Compute the size while checking for overflow.
sourceimpl<'a, I> MulAssign<&'a Dim<I>> for Dim<I>where
Dim<I>: Dimension,
impl<'a, I> MulAssign<&'a Dim<I>> for Dim<I>where
Dim<I>: Dimension,
sourcefn mul_assign(&mut self, rhs: &Dim<I>)
fn mul_assign(&mut self, rhs: &Dim<I>)
Performs the
*=
operation. Read moresourceimpl<I> MulAssign<Dim<I>> for Dim<I>where
Dim<I>: Dimension,
impl<I> MulAssign<Dim<I>> for Dim<I>where
Dim<I>: Dimension,
sourcefn mul_assign(&mut self, rhs: Dim<I>)
fn mul_assign(&mut self, rhs: Dim<I>)
Performs the
*=
operation. Read moresourceimpl<I> MulAssign<usize> for Dim<I>where
Dim<I>: Dimension,
impl<I> MulAssign<usize> for Dim<I>where
Dim<I>: Dimension,
sourcefn mul_assign(&mut self, rhs: usize)
fn mul_assign(&mut self, rhs: usize)
Performs the
*=
operation. Read moresourceimpl<I> PartialEq<Dim<I>> for Dim<I>where
I: PartialEq<I> + ?Sized,
impl<I> PartialEq<Dim<I>> for Dim<I>where
I: PartialEq<I> + ?Sized,
sourceimpl<I> PartialEq<I> for Dim<I>where
I: PartialEq<I> + ?Sized,
impl<I> PartialEq<I> for Dim<I>where
I: PartialEq<I> + ?Sized,
sourceimpl RemoveAxis for Dim<[usize; 3]>
impl RemoveAxis for Dim<[usize; 3]>
sourceimpl RemoveAxis for Dim<[usize; 4]>
impl RemoveAxis for Dim<[usize; 4]>
sourceimpl RemoveAxis for Dim<[usize; 5]>
impl RemoveAxis for Dim<[usize; 5]>
sourceimpl RemoveAxis for Dim<[usize; 6]>
impl RemoveAxis for Dim<[usize; 6]>
sourceimpl RemoveAxis for Dim<IxDynImpl>
impl RemoveAxis for Dim<IxDynImpl>
fn remove_axis(&self, axis: Axis) -> Dim<IxDynImpl>
sourceimpl<T, Dout> SliceArg<Dim<[usize; 0]>> for SliceInfo<T, Dim<[usize; 0]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 0]>> for SliceInfo<T, Dim<[usize; 0]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
sourceimpl<T, Dout> SliceArg<Dim<[usize; 1]>> for SliceInfo<T, Dim<[usize; 1]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 1]>> for SliceInfo<T, Dim<[usize; 1]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
sourceimpl<T, Dout> SliceArg<Dim<[usize; 2]>> for SliceInfo<T, Dim<[usize; 2]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 2]>> for SliceInfo<T, Dim<[usize; 2]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
sourceimpl<T, Dout> SliceArg<Dim<[usize; 3]>> for SliceInfo<T, Dim<[usize; 3]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 3]>> for SliceInfo<T, Dim<[usize; 3]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
sourceimpl<T, Dout> SliceArg<Dim<[usize; 4]>> for SliceInfo<T, Dim<[usize; 4]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 4]>> for SliceInfo<T, Dim<[usize; 4]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
sourceimpl<T, Dout> SliceArg<Dim<[usize; 5]>> for SliceInfo<T, Dim<[usize; 5]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 5]>> for SliceInfo<T, Dim<[usize; 5]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
sourceimpl<T, Dout> SliceArg<Dim<[usize; 6]>> for SliceInfo<T, Dim<[usize; 6]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
impl<T, Dout> SliceArg<Dim<[usize; 6]>> for SliceInfo<T, Dim<[usize; 6]>, Dout>where
T: AsRef<[SliceInfoElem]>,
Dout: Dimension,
sourceimpl SliceArg<Dim<IxDynImpl>> for [SliceInfoElem]
impl SliceArg<Dim<IxDynImpl>> for [SliceInfoElem]
sourceimpl<T, Din, Dout> SliceArg<Dim<IxDynImpl>> for SliceInfo<T, Din, Dout>where
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension,
impl<T, Din, Dout> SliceArg<Dim<IxDynImpl>> for SliceInfo<T, Din, Dout>where
T: AsRef<[SliceInfoElem]>,
Din: Dimension,
Dout: Dimension,
sourceimpl<'a, I> SubAssign<&'a Dim<I>> for Dim<I>where
Dim<I>: Dimension,
impl<'a, I> SubAssign<&'a Dim<I>> for Dim<I>where
Dim<I>: Dimension,
sourcefn sub_assign(&mut self, rhs: &Dim<I>)
fn sub_assign(&mut self, rhs: &Dim<I>)
Performs the
-=
operation. Read moresourceimpl<I> SubAssign<Dim<I>> for Dim<I>where
Dim<I>: Dimension,
impl<I> SubAssign<Dim<I>> for Dim<I>where
Dim<I>: Dimension,
sourcefn sub_assign(&mut self, rhs: Dim<I>)
fn sub_assign(&mut self, rhs: Dim<I>)
Performs the
-=
operation. Read moresourceimpl SubAssign<usize> for Dim<[usize; 1]>
impl SubAssign<usize> for Dim<[usize; 1]>
sourcefn sub_assign(&mut self, rhs: usize)
fn sub_assign(&mut self, rhs: usize)
Performs the
-=
operation. Read moreimpl<I> Copy for Dim<I>where
I: Copy + ?Sized,
impl<I> Eq for Dim<I>where
I: Eq + ?Sized,
impl NdIndex<Dim<[usize; 0]>> for [usize; 0]
impl NdIndex<Dim<[usize; 0]>> for ()
impl NdIndex<Dim<[usize; 1]>> for [usize; 1]
impl NdIndex<Dim<[usize; 1]>> for usize
impl NdIndex<Dim<[usize; 2]>> for [usize; 2]
impl NdIndex<Dim<[usize; 2]>> for (usize, usize)
impl NdIndex<Dim<[usize; 3]>> for [usize; 3]
impl NdIndex<Dim<[usize; 3]>> for (usize, usize, usize)
impl NdIndex<Dim<[usize; 4]>> for [usize; 4]
impl NdIndex<Dim<[usize; 4]>> for (usize, usize, usize, usize)
impl NdIndex<Dim<[usize; 5]>> for [usize; 5]
impl NdIndex<Dim<[usize; 5]>> for (usize, usize, usize, usize, usize)
impl NdIndex<Dim<[usize; 6]>> for [usize; 6]
impl<'a> NdIndex<Dim<IxDynImpl>> for &'a [usize]
impl<'a> NdIndex<Dim<IxDynImpl>> for &'a Dim<IxDynImpl>
impl NdIndex<Dim<IxDynImpl>> for [usize; 0]
impl NdIndex<Dim<IxDynImpl>> for [usize; 1]
impl NdIndex<Dim<IxDynImpl>> for [usize; 2]
impl NdIndex<Dim<IxDynImpl>> for [usize; 3]
impl NdIndex<Dim<IxDynImpl>> for [usize; 4]
impl NdIndex<Dim<IxDynImpl>> for [usize; 5]
impl NdIndex<Dim<IxDynImpl>> for [usize; 6]
impl NdIndex<Dim<IxDynImpl>> for Dim<[usize; 0]>
impl NdIndex<Dim<IxDynImpl>> for Dim<[usize; 1]>
impl NdIndex<Dim<IxDynImpl>> for Dim<[usize; 2]>
impl NdIndex<Dim<IxDynImpl>> for Dim<[usize; 3]>
impl NdIndex<Dim<IxDynImpl>> for Dim<[usize; 4]>
impl NdIndex<Dim<IxDynImpl>> for Dim<[usize; 5]>
impl NdIndex<Dim<IxDynImpl>> for Dim<[usize; 6]>
impl NdIndex<Dim<IxDynImpl>> for usize
impl<I> StructuralEq for Dim<I>where
I: ?Sized,
impl<I> StructuralPartialEq for Dim<I>where
I: ?Sized,
Auto Trait Implementations
impl<I: ?Sized> RefUnwindSafe for Dim<I>where
I: RefUnwindSafe,
impl<I: ?Sized> Send for Dim<I>where
I: Send,
impl<I: ?Sized> Sync for Dim<I>where
I: Sync,
impl<I: ?Sized> Unpin for Dim<I>where
I: Unpin,
impl<I: ?Sized> UnwindSafe for Dim<I>where
I: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<D> DimMax<D> for Dwhere
D: Dimension,
impl<D> DimMax<D> for Dwhere
D: Dimension,
type Output = D
type Output = D
The resulting dimension type after broadcasting.
sourceimpl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
sourcefn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<R, Global>impl<R> Read for Box<R, Global>where
R: Read + ?Sized,impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>ⓘNotable traits for Box<R, Global>impl<R> Read for Box<R, Global>where
R: Read + ?Sized,impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
R: Read + ?Sized,impl<W> Write for Box<W, Global>where
W: Write + ?Sized,impl<F, A> Future for Box<F, A>where
F: Future + Unpin + ?Sized,
A: Allocator + 'static, type Output = <F as Future>::Output;impl<I, A> Iterator for Box<I, A>where
I: Iterator + ?Sized,
A: Allocator, type Item = <I as Iterator>::Item;
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read moresourcefn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read moresourcefn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read moresourcefn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more