Struct EmptyElement

pub struct EmptyElement<Coord, DB>
where DB: DrawingBackend,
{ /* private fields */ }
Expand description

An empty composable element. This is the starting point of a composed element.

§Example

use plotters::prelude::*;
let data = [(1.0, 3.3), (2., 2.1), (3., 1.5), (4., 1.9), (5., 1.0)];
let drawing_area = SVGBackend::new("composable.svg", (300, 200)).into_drawing_area();
drawing_area.fill(&WHITE).unwrap();
let mut chart_builder = ChartBuilder::on(&drawing_area);
chart_builder.margin(7).set_left_and_bottom_label_area_size(20);
let mut chart_context = chart_builder.build_cartesian_2d(0.0..5.5, 0.0..5.5).unwrap();
chart_context.configure_mesh().draw().unwrap();
chart_context.draw_series(data.map(|(x, y)| {
    EmptyElement::at((x, y)) // Use the guest coordinate system with EmptyElement
    + Circle::new((0, 0), 10, BLUE) // Use backend coordinates with the rest
    + Cross::new((4, 4), 3, RED)
    + Pixel::new((4, -4), RED)
    + TriangleMarker::new((-4, -4), 4, RED)
})).unwrap();

The result is a data series where each point consists of a circle, a cross, a pixel, and a triangle:

Implementations§

§

impl<Coord, DB> EmptyElement<Coord, DB>
where DB: DrawingBackend,

pub fn at(coord: Coord) -> EmptyElement<Coord, DB>

An empty composable element. This is the starting point of a composed element.

See EmptyElement for more information and examples.

Trait Implementations§

§

impl<Coord, Other, DB> Add<Other> for EmptyElement<Coord, DB>
where DB: DrawingBackend, Other: Drawable<DB>, &'a Other: for<'a> PointCollection<'a, (i32, i32)>,

§

type Output = BoxedElement<Coord, DB, Other>

The resulting type after applying the + operator.
§

fn add(self, other: Other) -> <EmptyElement<Coord, DB> as Add<Other>>::Output

Performs the + operation. Read more
§

impl<Coord, DB> Drawable<DB> for EmptyElement<Coord, DB>
where DB: DrawingBackend,

§

fn draw<I>( &self, _pos: I, _backend: &mut DB, _: (u32, u32), ) -> Result<(), DrawingErrorKind<<DB as DrawingBackend>::ErrorType>>
where I: Iterator<Item = (i32, i32)>,

Actually draws the element. The key points is already translated into the image coordinate and can be used by DC directly
§

impl<'a, Coord, DB> PointCollection<'a, Coord> for &'a EmptyElement<Coord, DB>
where DB: DrawingBackend,

§

type Point = &'a Coord

The item in point iterator
§

type IntoIter = Once<&'a Coord>

The point iterator
§

fn point_iter( self, ) -> <&'a EmptyElement<Coord, DB> as PointCollection<'a, Coord>>::IntoIter

framework to do the coordinate mapping

Auto Trait Implementations§

§

impl<Coord, DB> Freeze for EmptyElement<Coord, DB>
where Coord: Freeze,

§

impl<Coord, DB> RefUnwindSafe for EmptyElement<Coord, DB>
where Coord: RefUnwindSafe, DB: RefUnwindSafe,

§

impl<Coord, DB> Send for EmptyElement<Coord, DB>
where Coord: Send, DB: Send,

§

impl<Coord, DB> Sync for EmptyElement<Coord, DB>
where Coord: Sync, DB: Sync,

§

impl<Coord, DB> Unpin for EmptyElement<Coord, DB>
where Coord: Unpin, DB: Unpin,

§

impl<Coord, DB> UnwindSafe for EmptyElement<Coord, DB>
where Coord: UnwindSafe, DB: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

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

Source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast for T
where T: 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>

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)

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)

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> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

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

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<'b, T, DB, Coord> IntoDynElement<'b, DB, Coord> for T
where T: Drawable<DB> + 'b, &'a T: for<'a> PointCollection<'a, Coord>, Coord: Clone, DB: DrawingBackend,

§

fn into_dyn(self) -> DynElement<'b, DB, Coord>

Make the conversion
Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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> Pointable for T

§

const ALIGN: usize

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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more