Trait autd3::derive::Gain

source ·
pub trait Gain {
    // Required method
    fn calc<'a>(
        &'a self,
        geometry: &Geometry,
    ) -> Result<Box<dyn Fn(&Device) -> Box<dyn Fn(&Transducer) -> Drive + Send + Sync> + 'a>, AUTDInternalError>;

    // Provided methods
    fn calc_with_filter<'a>(
        &'a self,
        geometry: &Geometry,
        _filter: HashMap<usize, BitVec>,
    ) -> Result<Box<dyn Fn(&Device) -> Box<dyn Fn(&Transducer) -> Drive + Send + Sync> + 'a>, AUTDInternalError> { ... }
    fn transform<'a, D, FT, F>(
        f: F,
    ) -> Box<dyn Fn(&Device) -> Box<dyn Fn(&Transducer) -> Drive + Send + Sync> + 'a>
       where D: Into<Drive>,
             FT: Fn(&Transducer) -> D + Sync + Send + 'static,
             F: Fn(&Device) -> FT + 'a,
             Self: Sized { ... }
    fn trace(&self, _geometry: &Geometry) { ... }
}

Required Methods§

source

fn calc<'a>( &'a self, geometry: &Geometry, ) -> Result<Box<dyn Fn(&Device) -> Box<dyn Fn(&Transducer) -> Drive + Send + Sync> + 'a>, AUTDInternalError>

Provided Methods§

source

fn calc_with_filter<'a>( &'a self, geometry: &Geometry, _filter: HashMap<usize, BitVec>, ) -> Result<Box<dyn Fn(&Device) -> Box<dyn Fn(&Transducer) -> Drive + Send + Sync> + 'a>, AUTDInternalError>

source

fn transform<'a, D, FT, F>( f: F, ) -> Box<dyn Fn(&Device) -> Box<dyn Fn(&Transducer) -> Drive + Send + Sync> + 'a>
where D: Into<Drive>, FT: Fn(&Transducer) -> D + Sync + Send + 'static, F: Fn(&Device) -> FT + 'a, Self: Sized,

source

fn trace(&self, _geometry: &Geometry)

Trait Implementations§

source§

impl<'a> Datagram for Box<dyn Gain + Send + Sync + 'a>

§

type G = GainOperationGenerator<Box<dyn Gain + Send + Sync + 'a>>

source§

fn operation_generator( self, geometry: &Geometry, ) -> Result<<Box<dyn Gain + Send + Sync + 'a> as Datagram>::G, AUTDInternalError>

source§

fn trace(&self, geometry: &Geometry)

source§

fn timeout(&self) -> Option<Duration>

source§

fn parallel_threshold(&self) -> Option<usize>

source§

impl<'a> DatagramS for Box<dyn Gain + Send + Sync + 'a>

§

type G = GainOperationGenerator<Box<dyn Gain + Send + Sync + 'a>>

source§

fn operation_generator_with_segment( self, geometry: &Geometry, segment: Segment, transition: bool, ) -> Result<<Box<dyn Gain + Send + Sync + 'a> as DatagramS>::G, AUTDInternalError>

source§

fn trace(&self, geometry: &Geometry)

source§

fn timeout(&self) -> Option<Duration>

source§

fn parallel_threshold(&self) -> Option<usize>

source§

impl<'a> Gain for Box<dyn Gain + Send + Sync + 'a>

source§

fn calc( &self, geometry: &Geometry, ) -> Result<Box<dyn Fn(&Device) -> Box<dyn Fn(&Transducer) -> Drive + Send + Sync> + '_>, AUTDInternalError>

source§

fn trace(&self, geometry: &Geometry)

source§

fn calc_with_filter<'a>( &'a self, geometry: &Geometry, _filter: HashMap<usize, BitVec>, ) -> Result<Box<dyn Fn(&Device) -> Box<dyn Fn(&Transducer) -> Drive + Send + Sync> + 'a>, AUTDInternalError>

source§

fn transform<'a, D, FT, F>( f: F, ) -> Box<dyn Fn(&Device) -> Box<dyn Fn(&Transducer) -> Drive + Send + Sync> + 'a>
where D: Into<Drive>, FT: Fn(&Transducer) -> D + Sync + Send + 'static, F: Fn(&Device) -> FT + 'a, Self: Sized,

Implementations on Foreign Types§

source§

impl<'a> Gain for Box<dyn Gain + Send + Sync + 'a>

source§

fn calc( &self, geometry: &Geometry, ) -> Result<Box<dyn Fn(&Device) -> Box<dyn Fn(&Transducer) -> Drive + Send + Sync> + '_>, AUTDInternalError>

source§

fn trace(&self, geometry: &Geometry)

Implementors§

source§

impl Gain for Bessel

source§

impl Gain for Focus

source§

impl Gain for Null

source§

impl Gain for Plane

source§

impl Gain for Uniform

source§

impl<D: Into<Drive>, FT: Fn(&Transducer) -> D + Send + Sync + 'static, F: Fn(&Device) -> FT + 'static> Gain for Custom<D, FT, F>

source§

impl<G> Gain for Cache<G>
where G: Gain,

source§

impl<G, D, FT, F> Gain for Transform<G, D, FT, F>
where G: Gain, D: Into<Drive>, FT: Fn(&Transducer, Drive) -> D + Send + Sync + 'static, F: Fn(&Device) -> FT,

source§

impl<K, FK, F> Gain for Group<K, FK, F>
where K: Hash + Eq + Clone + Debug + Send + Sync, FK: Fn(&Transducer) -> Option<K> + Send + Sync, F: Fn(&Device) -> FK + Send + Sync,