wdl_format/config/
max_line_length.rs1pub const DEFAULT_MAX_LINE_LENGTH: usize = 90;
5pub const MIN_MAX_LINE_LENGTH: usize = 60;
7pub const MAX_MAX_LINE_LENGTH: usize = 240;
9
10#[derive(Clone, Copy, Debug, Eq, PartialEq)]
12pub struct MaxLineLength(Option<usize>);
13
14impl MaxLineLength {
15 pub fn try_new(value: usize) -> Result<Self, String> {
19 let val = match value {
20 0 => Self(None),
21 MIN_MAX_LINE_LENGTH..=MAX_MAX_LINE_LENGTH => Self(Some(value)),
22 _ => {
23 return Err(format!(
24 "The maximum line length must be between {MIN_MAX_LINE_LENGTH} and \
25 {MAX_MAX_LINE_LENGTH} or 0"
26 ));
27 }
28 };
29 Ok(val)
30 }
31
32 pub fn get(&self) -> Option<usize> {
34 self.0
35 }
36}
37
38impl Default for MaxLineLength {
39 fn default() -> Self {
40 Self(Some(DEFAULT_MAX_LINE_LENGTH))
41 }
42}