diff options
Diffstat (limited to 'src/brush.rs')
-rw-r--r-- | src/brush.rs | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/src/brush.rs b/src/brush.rs index 98c2b23..1a365b1 100644 --- a/src/brush.rs +++ b/src/brush.rs | |||
@@ -23,27 +23,28 @@ pub enum Brush { | |||
23 | } | 23 | } |
24 | 24 | ||
25 | impl Brush { | 25 | impl Brush { |
26 | pub fn grow(&mut self) -> Result<(), BrushError> { | 26 | pub fn grow(&mut self) { |
27 | match self { | 27 | match self { |
28 | Brush::Line { ref mut size, .. } => *size += 1, | 28 | Brush::Line { ref mut size, .. } => *size += 1, |
29 | Brush::Circle { ref mut size, .. } => *size += 1, | 29 | Brush::Circle { ref mut size, .. } => *size += 1, |
30 | Brush::Custom { ref mut size, .. } => *size += 1, | 30 | Brush::Custom { ref mut size, .. } => *size += 1, |
31 | _ => return Err(BrushError::CannotIncreaseSize), | 31 | _ => (), |
32 | } | 32 | } |
33 | Ok(()) | ||
34 | } | 33 | } |
35 | pub fn shrink(&mut self) -> Result<(), BrushError> { | 34 | |
35 | pub fn shrink(&mut self) { | ||
36 | match self { | 36 | match self { |
37 | Brush::Line { ref mut size, .. } => *size += size.saturating_sub(1), | 37 | Brush::Line { ref mut size, .. } => *size = size.saturating_sub(1), |
38 | Brush::Circle { ref mut size, .. } => *size += size.saturating_sub(1), | 38 | Brush::Circle { ref mut size, .. } => *size = size.saturating_sub(1), |
39 | Brush::Custom { ref mut size, .. } => *size += size.saturating_sub(1), | 39 | Brush::Custom { ref mut size, .. } => *size = size.saturating_sub(1), |
40 | _ => return Err(BrushError::CannotIncreaseSize), | 40 | _ => (), |
41 | } | 41 | } |
42 | Ok(()) | ||
43 | } | 42 | } |
44 | pub fn new() -> Self { | 43 | |
45 | Brush::Circle { size: 0 } | 44 | pub fn new(size: u8) -> Self { |
45 | Brush::Circle { size } | ||
46 | } | 46 | } |
47 | |||
47 | pub fn line(size: u8, extend: bool) -> Self { | 48 | pub fn line(size: u8, extend: bool) -> Self { |
48 | Brush::Line { | 49 | Brush::Line { |
49 | size, | 50 | size, |
@@ -51,9 +52,18 @@ impl Brush { | |||
51 | extend, | 52 | extend, |
52 | } | 53 | } |
53 | } | 54 | } |
55 | |||
54 | pub fn is_line(&self) -> bool { | 56 | pub fn is_line(&self) -> bool { |
55 | matches!(self, Self::Line { .. }) | 57 | matches!(self, Self::Line { .. }) |
56 | } | 58 | } |
59 | |||
60 | pub fn size(&self) -> Option<u8> { | ||
61 | match self { | ||
62 | Brush::Line { size, .. } => Some(size.clone()), | ||
63 | Brush::Circle { size } => Some(size.clone()), | ||
64 | _ => None, | ||
65 | } | ||
66 | } | ||
57 | } | 67 | } |
58 | 68 | ||
59 | impl fmt::Display for Brush { | 69 | impl fmt::Display for Brush { |
@@ -67,7 +77,3 @@ impl fmt::Display for Brush { | |||
67 | } | 77 | } |
68 | } | 78 | } |
69 | } | 79 | } |
70 | |||
71 | pub enum BrushError { | ||
72 | CannotIncreaseSize, | ||
73 | } | ||