Struct WithKeyPointMethod
pub struct WithKeyPointMethod<R>where
R: Ranged,{ /* private fields */ }Available on crate feature
plot only.Expand description
The coordinate decorator that allows customized keypoint algorithms. Normally, all the coordinate spec implements its own key point algorithm But this decorator allows you override the pre-defined key point algorithm.
To use this decorator, see BindKeyPointMethod::with_key_point_func
Implementations§
§impl<R> WithKeyPointMethod<R>where
R: Ranged,
impl<R> WithKeyPointMethod<R>where
R: Ranged,
pub fn with_light_point_func<F>(self, func: F) -> WithKeyPointMethod<R>
pub fn with_light_point_func<F>(self, func: F) -> WithKeyPointMethod<R>
Define the light key point algorithm, by default this returns an empty set
Trait Implementations§
§impl<R> DiscreteRanged for WithKeyPointMethod<R>where
R: DiscreteRanged,
impl<R> DiscreteRanged for WithKeyPointMethod<R>where
R: DiscreteRanged,
§fn size(&self) -> usize
fn size(&self) -> usize
Get the number of element in the range
Note: we assume that all the ranged discrete coordinate has finite value Read more
§fn index_of(
&self,
value: &<WithKeyPointMethod<R> as Ranged>::ValueType,
) -> Option<usize>
fn index_of( &self, value: &<WithKeyPointMethod<R> as Ranged>::ValueType, ) -> Option<usize>
Map a value to the index Read more
§fn from_index(
&self,
index: usize,
) -> Option<<WithKeyPointMethod<R> as Ranged>::ValueType>
fn from_index( &self, index: usize, ) -> Option<<WithKeyPointMethod<R> as Ranged>::ValueType>
Reverse map the index to the value Read more
§fn values(&self) -> DiscreteValueIter<'_, Self>where
Self: Sized,
fn values(&self) -> DiscreteValueIter<'_, Self>where
Self: Sized,
Return a iterator that iterates over the all possible values Read more
§impl<R> Ranged for WithKeyPointMethod<R>where
R: Ranged,
impl<R> Ranged for WithKeyPointMethod<R>where
R: Ranged,
§type FormatOption = <R as Ranged>::FormatOption
type FormatOption = <R as Ranged>::FormatOption
This marker decides if Plotters default ValueFormatter implementation should be used.
This associated type can be one of the following two types: Read more
§fn range(&self) -> Range<<WithKeyPointMethod<R> as Ranged>::ValueType> ⓘ
fn range(&self) -> Range<<WithKeyPointMethod<R> as Ranged>::ValueType> ⓘ
Get the range of this value
§fn map(
&self,
value: &<WithKeyPointMethod<R> as Ranged>::ValueType,
limit: (i32, i32),
) -> i32
fn map( &self, value: &<WithKeyPointMethod<R> as Ranged>::ValueType, limit: (i32, i32), ) -> i32
This function maps the value to i32, which is the drawing coordinate
§fn key_points<Hint>(
&self,
hint: Hint,
) -> Vec<<WithKeyPointMethod<R> as Ranged>::ValueType>where
Hint: KeyPointHint,
fn key_points<Hint>(
&self,
hint: Hint,
) -> Vec<<WithKeyPointMethod<R> as Ranged>::ValueType>where
Hint: KeyPointHint,
This function gives the key points that we can draw a grid based on this
Auto Trait Implementations§
impl<R> Freeze for WithKeyPointMethod<R>where
R: Freeze,
impl<R> !RefUnwindSafe for WithKeyPointMethod<R>
impl<R> !Send for WithKeyPointMethod<R>
impl<R> !Sync for WithKeyPointMethod<R>
impl<R> Unpin for WithKeyPointMethod<R>where
R: Unpin,
impl<R> !UnwindSafe for WithKeyPointMethod<R>
Blanket Implementations§
§impl<T> AsRangedCoord for Twhere
T: Ranged,
impl<T> AsRangedCoord for Twhere
T: Ranged,
§impl<T> BindKeyPointMethod for Twhere
T: AsRangedCoord,
impl<T> BindKeyPointMethod for Twhere
T: AsRangedCoord,
§fn with_key_point_func<F>(
self,
func: F,
) -> WithKeyPointMethod<Self::CoordDescType>
fn with_key_point_func<F>( self, func: F, ) -> WithKeyPointMethod<Self::CoordDescType>
Bind a existing coordinate spec with a given key points algorithm. See WithKeyPointMethod for more details.
Example: Read more
§impl<T> BindKeyPoints for Twhere
T: AsRangedCoord,
impl<T> BindKeyPoints for Twhere
T: AsRangedCoord,
§fn with_key_points(
self,
points: Vec<Self::Value>,
) -> WithKeyPoints<Self::CoordDescType>
fn with_key_points( self, points: Vec<Self::Value>, ) -> WithKeyPoints<Self::CoordDescType>
Bind a existing coordinate spec with a given key points vector. See WithKeyPoints for more details.
Example: Read more
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn 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.§fn 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.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoLinspace for Twhere
T: AsRangedCoord,
impl<T> IntoLinspace for Twhere
T: AsRangedCoord,
§impl<R> IntoPartialAxis for Rwhere
R: AsRangedCoord,
impl<R> IntoPartialAxis for Rwhere
R: AsRangedCoord,
§fn partial_axis(
self,
axis_range: Range<<Self::CoordDescType as Ranged>::ValueType>,
) -> PartialAxis<Self::CoordDescType>
fn partial_axis( self, axis_range: Range<<Self::CoordDescType as Ranged>::ValueType>, ) -> PartialAxis<Self::CoordDescType>
Make the partial axis Read more