Trait basic_dsp::RededicateVector
[−]
[src]
pub trait RededicateVector<Other> {
fn rededicate(self) -> Other;
fn rededicate_from(origin: Other) -> Self;
}This trait allows to change a vector type. The operations will
convert a vector to a different type and set self.len() to zero.
However self.allocated_len() will remain unchanged. The use case for this
is to allow to reuse the memory of a vector for different operations.
Required Methods
fn rededicate(self) -> Other
Make self a Other.
Example
use basic_dsp::{ComplexFreqVector32, ComplexTimeVector32, ComplexVectorOps, RededicateVector, DataVector, DataVectorDomain}; let complex = ComplexFreqVector32::from_interleaved(&[1.0, 2.0, 3.0, 4.0]); let real = complex.phase().expect("Ignoring error handling in examples"); let complex: ComplexTimeVector32 = real.rededicate(); assert_eq!(true, complex.is_complex()); assert_eq!(DataVectorDomain::Time, complex.domain()); assert_eq!(0, complex.len()); assert_eq!(2, complex.allocated_len());
fn rededicate_from(origin: Other) -> Self
Make Other a Self.
Example
use basic_dsp::{ComplexFreqVector32, ComplexTimeVector32, ComplexVectorOps, RededicateVector, DataVector, DataVectorDomain}; let complex = ComplexFreqVector32::from_interleaved(&[1.0, 2.0, 3.0, 4.0]); let real = complex.phase().expect("Ignoring error handling in examples"); let complex = ComplexTimeVector32::rededicate_from(real); assert_eq!(true, complex.is_complex()); assert_eq!(DataVectorDomain::Time, complex.domain()); assert_eq!(0, complex.len()); assert_eq!(2, complex.allocated_len());
Implementors
impl<T> RededicateVector<ComplexTimeVector<T>> for RealTimeVector<T> where T: RealNumberimpl<T> RededicateVector<ComplexFreqVector<T>> for RealTimeVector<T> where T: RealNumberimpl<T> RededicateVector<RealTimeVector<T>> for RealTimeVector<T> where T: RealNumberimpl<T> RededicateVector<RealFreqVector<T>> for RealTimeVector<T> where T: RealNumberimpl<T> RededicateVector<GenericDataVector<T>> for RealTimeVector<T> where T: RealNumberimpl<T> RededicateVector<ComplexTimeVector<T>> for ComplexTimeVector<T> where T: RealNumberimpl<T> RededicateVector<ComplexFreqVector<T>> for ComplexTimeVector<T> where T: RealNumberimpl<T> RededicateVector<RealTimeVector<T>> for ComplexTimeVector<T> where T: RealNumberimpl<T> RededicateVector<RealFreqVector<T>> for ComplexTimeVector<T> where T: RealNumberimpl<T> RededicateVector<GenericDataVector<T>> for ComplexTimeVector<T> where T: RealNumberimpl<T> RededicateVector<ComplexTimeVector<T>> for RealFreqVector<T> where T: RealNumberimpl<T> RededicateVector<ComplexFreqVector<T>> for RealFreqVector<T> where T: RealNumberimpl<T> RededicateVector<RealTimeVector<T>> for RealFreqVector<T> where T: RealNumberimpl<T> RededicateVector<RealFreqVector<T>> for RealFreqVector<T> where T: RealNumberimpl<T> RededicateVector<GenericDataVector<T>> for RealFreqVector<T> where T: RealNumberimpl<T> RededicateVector<ComplexTimeVector<T>> for ComplexFreqVector<T> where T: RealNumberimpl<T> RededicateVector<ComplexFreqVector<T>> for ComplexFreqVector<T> where T: RealNumberimpl<T> RededicateVector<RealTimeVector<T>> for ComplexFreqVector<T> where T: RealNumberimpl<T> RededicateVector<RealFreqVector<T>> for ComplexFreqVector<T> where T: RealNumberimpl<T> RededicateVector<GenericDataVector<T>> for ComplexFreqVector<T> where T: RealNumberimpl<T> RededicateVector<ComplexTimeVector<T>> for GenericDataVector<T> where T: RealNumberimpl<T> RededicateVector<ComplexFreqVector<T>> for GenericDataVector<T> where T: RealNumberimpl<T> RededicateVector<RealTimeVector<T>> for GenericDataVector<T> where T: RealNumberimpl<T> RededicateVector<RealFreqVector<T>> for GenericDataVector<T> where T: RealNumberimpl<T> RededicateVector<GenericDataVector<T>> for GenericDataVector<T> where T: RealNumber