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}