1use crate::aes::Aesthetic;
2use crate::coord::Coord;
3use crate::data::DataFrame;
4use crate::position::identity::PositionIdentity;
5use crate::position::Position;
6use crate::render::backend::DrawBackend;
7use crate::render::RenderError;
8use crate::scale::ScaleSet;
9use crate::stat::identity::StatIdentity;
10use crate::stat::Stat;
11use crate::theme::Theme;
12
13use super::{Geom, GeomParams};
14
15#[derive(Default)]
18pub struct GeomBlank;
19
20impl Geom for GeomBlank {
21 fn draw(
22 &self,
23 _data: &DataFrame,
24 _coord: &dyn Coord,
25 _scales: &ScaleSet,
26 _theme: &Theme,
27 _backend: &mut dyn DrawBackend,
28 ) -> Result<(), RenderError> {
29 Ok(())
30 }
31
32 fn required_aes(&self) -> Vec<Aesthetic> {
33 vec![]
34 }
35
36 fn default_stat(&self) -> Box<dyn Stat> {
37 Box::new(StatIdentity)
38 }
39
40 fn default_position(&self) -> Box<dyn Position> {
41 Box::new(PositionIdentity)
42 }
43
44 fn default_params(&self) -> GeomParams {
45 GeomParams::default()
46 }
47
48 fn name(&self) -> &str {
49 "blank"
50 }
51}