nu_protocol/config/
rm.rs

1use super::prelude::*;
2use crate as nu_protocol;
3
4#[derive(Clone, Copy, Debug, IntoValue, PartialEq, Eq, Serialize, Deserialize)]
5pub struct RmConfig {
6    pub always_trash: bool,
7}
8
9#[allow(clippy::derivable_impls)]
10impl Default for RmConfig {
11    fn default() -> Self {
12        Self {
13            always_trash: false,
14        }
15    }
16}
17
18impl UpdateFromValue for RmConfig {
19    fn update<'a>(
20        &mut self,
21        value: &'a Value,
22        path: &mut ConfigPath<'a>,
23        errors: &mut ConfigErrors,
24    ) {
25        let Value::Record { val: record, .. } = value else {
26            errors.type_mismatch(path, Type::record(), value);
27            return;
28        };
29
30        for (col, val) in record.iter() {
31            let path = &mut path.push(col);
32            match col.as_str() {
33                "always_trash" => self.always_trash.update(val, path, errors),
34                _ => errors.unknown_option(path, val),
35            }
36        }
37    }
38}