nextcloud_dav/method/
overwrite.rs1pub const OVERWRITE_HEADER: &str = "Overwrite";
3
4#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash)]
6pub enum Overwrite {
7 Allow,
9 Forbidden,
11}
12
13impl Overwrite {
14 pub const fn as_header_value(self) -> &'static str {
16 match self {
17 Self::Allow => "T",
18 Self::Forbidden => "F",
19 }
20 }
21}
22
23impl From<bool> for Overwrite {
24 fn from(value: bool) -> Self {
25 if value { Self::Allow } else { Self::Forbidden }
26 }
27}
28
29#[cfg(test)]
30mod tests {
31 use super::{OVERWRITE_HEADER, Overwrite};
32
33 #[test]
34 fn header_values_use_the_specification_tokens() {
35 assert_eq!(Overwrite::Allow.as_header_value(), "T");
36 assert_eq!(Overwrite::Forbidden.as_header_value(), "F");
37 }
38
39 #[test]
40 fn header_name_keeps_its_canonical_spelling() {
41 assert_eq!(OVERWRITE_HEADER, "Overwrite");
42 }
43
44 #[test]
45 fn boolean_conversion_matches_specification() {
46 assert_eq!(Overwrite::from(true), Overwrite::Allow);
47 assert_eq!(Overwrite::from(false), Overwrite::Forbidden);
48 }
49}