criterion_plot/
grid.rs

1//! Gridline
2
3use crate::{Axis, Default, Display, Grid, Script};
4
5/// Gridline properties
6#[derive(Clone, Copy)]
7pub struct Properties {
8    hidden: bool,
9}
10
11impl Default for Properties {
12    fn default() -> Properties {
13        Properties { hidden: true }
14    }
15}
16
17// TODO Lots of configuration pending: linetype, linewidth, etc
18impl Properties {
19    /// Hides the gridlines
20    ///
21    /// **Note** Both `Major` and `Minor` gridlines are hidden by default
22    pub fn hide(&mut self) -> &mut Properties {
23        self.hidden = true;
24        self
25    }
26
27    /// Shows the gridlines
28    pub fn show(&mut self) -> &mut Properties {
29        self.hidden = false;
30        self
31    }
32}
33
34impl<'a> Script for (Axis, Grid, &'a Properties) {
35    fn script(&self) -> String {
36        let &(axis, grid, properties) = self;
37        let axis = axis.display();
38        let grid = grid.display();
39
40        if properties.hidden {
41            String::new()
42        } else {
43            format!("set grid {}{}tics\n", grid, axis)
44        }
45    }
46}