blob: 3cec7a76f9fbdcea8ef60c6ea9d90c0473f6a922 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
use std::str::FromStr;
use iced::Padding;
use super::ValueFromStr;
#[derive(Debug)]
pub enum PaddingError {
Nah,
}
impl ValueFromStr for Padding {
type Err = PaddingError;
fn value_from_str(s: &str) -> Result<Self, Self::Err> {
s.strip_prefix('[')
.and_then(|s| s.strip_suffix(']'))
.map(|s| {
s.split(',')
.map(|n| f32::from_str(n).unwrap())
.collect::<Vec<_>>()
})
.and_then(|s| {
if s.len() == 4 {
Some(Padding {
top: s[0],
right: s[1],
bottom: s[2],
left: s[3],
})
} else {
None
}
})
.ok_or(PaddingError::Nah)
}
}
|