libfuse_fs/overlayfs/
config.rs

1// Copyright (C) 2023 Ant Group. All rights reserved.
2//  2024 From [fuse_backend_rs](https://github.com/cloud-hypervisor/fuse-backend-rs)
3// SPDX-License-Identifier: Apache-2.0
4
5use self::super::CachePolicy;
6use std::fmt;
7
8#[derive(Default, Clone, Debug)]
9pub struct Config {
10    pub mountpoint: String,
11    pub do_import: bool,
12    // Filesystem options.
13    pub writeback: bool,
14    pub no_open: bool,
15    pub no_opendir: bool,
16    pub killpriv_v2: bool,
17    pub no_readdir: bool,
18    pub perfile_dax: bool,
19}
20
21impl Clone for CachePolicy {
22    fn clone(&self) -> Self {
23        match *self {
24            CachePolicy::Never => CachePolicy::Never,
25            CachePolicy::Always => CachePolicy::Always,
26            CachePolicy::Auto => CachePolicy::Auto,
27        }
28    }
29}
30
31impl fmt::Debug for CachePolicy {
32    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
33        let policy = match *self {
34            CachePolicy::Never => "Never",
35            CachePolicy::Always => "Always",
36            CachePolicy::Auto => "Auto",
37        };
38
39        write!(f, "CachePolicy: {policy}")
40    }
41}