use crate::config::user_opts::StructuresOptions;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone)]
pub struct Structures {
pub field_alignment: FieldAlignment,
pub small_structures_single_line: bool,
}
impl Default for Structures {
fn default() -> Self {
Self {
field_alignment: Default::default(),
small_structures_single_line: true,
}
}
}
impl Structures {
pub fn from_opts(opts: &StructuresOptions) -> Self {
let default = Self::default();
Self {
field_alignment: opts.field_alignment.unwrap_or(default.field_alignment),
small_structures_single_line: opts
.struct_lit_single_line
.unwrap_or(default.small_structures_single_line),
}
}
}
#[derive(Debug, Copy, Clone, Serialize, Deserialize, Default)]
pub enum FieldAlignment {
AlignFields(usize),
#[default]
Off,
}