Skip to main content

qubit_fs/spi/request/
create_temp_file_request.rs

1// =============================================================================
2//    Copyright (c) 2026 Haixing Hu.
3//
4//    SPDX-License-Identifier: Apache-2.0
5//
6//    Licensed under the Apache License, Version 2.0.
7// =============================================================================
8// facade.
9//! Validated temporary-file creation request.
10
11use crate::temp::TempOptions;
12
13/// A facade-created temporary-file request.
14///
15/// # Examples
16///
17/// ```rust
18/// use qubit_fs::spi::CreateTempFileRequest;
19/// use qubit_fs::temp::TempOptions;
20///
21/// assert!(std::any::type_name::<CreateTempFileRequest>().contains("CreateTempFileRequest"));
22/// assert_eq!(TempOptions::default(), TempOptions::new());
23/// ```
24pub struct CreateTempFileRequest {
25    /// Validated temporary-file creation options.
26    options: TempOptions,
27}
28
29impl CreateTempFileRequest {
30    /// Creates this request inside the facade boundary.
31    ///
32    /// # Parameters
33    /// - `options`: Validated temporary-file creation options.
34    ///
35    /// # Returns
36    /// A provider temporary-file request.
37    #[allow(dead_code)]
38    #[inline]
39    pub(crate) const fn new(options: TempOptions) -> Self {
40        Self { options }
41    }
42
43    /// Returns requested temporary-file options.
44    ///
45    /// # Returns
46    /// The immutable temporary-file creation options.
47    #[inline]
48    #[must_use]
49    pub const fn options(&self) -> &TempOptions {
50        &self.options
51    }
52}