pub struct DMSCFileSystem { /* private fields */ }Expand description
Public-facing filesystem class.
This struct provides a comprehensive file system abstraction for DMSC, offering safe and reliable file operations with support for atomic writes, directory management, and structured data formats.
Implementations§
Source§impl DMSCFileSystem
impl DMSCFileSystem
Sourcepub fn new_with_root(project_root: PathBuf) -> Self
pub fn new_with_root(project_root: PathBuf) -> Self
Sourcepub fn new_with_roots(project_root: PathBuf, app_data_root: PathBuf) -> Self
pub fn new_with_roots(project_root: PathBuf, app_data_root: PathBuf) -> Self
Sourcepub fn new_auto_root() -> DMSCResult<Self>
pub fn new_auto_root() -> DMSCResult<Self>
Creates a new file system with the current working directory as the project root.
§Returns
A DMSCResult<Self> containing the new DMSCFileSystem instance
Sourcepub fn project_root(&self) -> &Path
pub fn project_root(&self) -> &Path
Sourcepub fn safe_mkdir<P: AsRef<Path>>(&self, path: P) -> DMSCResult<PathBuf>
pub fn safe_mkdir<P: AsRef<Path>>(&self, path: P) -> DMSCResult<PathBuf>
Sourcepub fn ensure_parent_dir<P: AsRef<Path>>(&self, path: P) -> DMSCResult<PathBuf>
pub fn ensure_parent_dir<P: AsRef<Path>>(&self, path: P) -> DMSCResult<PathBuf>
Sourcepub fn atomic_write_text<P: AsRef<Path>>(
&self,
path: P,
text: &str,
) -> DMSCResult<()>
pub fn atomic_write_text<P: AsRef<Path>>( &self, path: P, text: &str, ) -> DMSCResult<()>
Atomically writes text to a file.
This method writes to a temporary file first, then renames it to the target path, ensuring that the write operation is atomic.
§Parameters
path: The path to the file to writetext: The text to write to the file
§Returns
A DMSCResult<()> indicating success or failure
Sourcepub fn atomic_write_bytes<P: AsRef<Path>>(
&self,
path: P,
data: &[u8],
) -> DMSCResult<()>
pub fn atomic_write_bytes<P: AsRef<Path>>( &self, path: P, data: &[u8], ) -> DMSCResult<()>
Atomically writes bytes to a file.
This method writes to a temporary file first, then renames it to the target path, ensuring that the write operation is atomic.
§Parameters
path: The path to the file to writedata: The bytes to write to the file
§Returns
A DMSCResult<()> indicating success or failure
Sourcepub fn read_json<P: AsRef<Path>, T: DeserializeOwned>(
&self,
path: P,
) -> DMSCResult<T>
pub fn read_json<P: AsRef<Path>, T: DeserializeOwned>( &self, path: P, ) -> DMSCResult<T>
Sourcepub fn remove_file<P: AsRef<Path>>(&self, path: P) -> DMSCResult<()>
pub fn remove_file<P: AsRef<Path>>(&self, path: P) -> DMSCResult<()>
Sourcepub fn remove_dir_all<P: AsRef<Path>>(&self, path: P) -> DMSCResult<()>
pub fn remove_dir_all<P: AsRef<Path>>(&self, path: P) -> DMSCResult<()>
Sourcepub fn append_text<P: AsRef<Path>>(&self, path: P, text: &str) -> DMSCResult<()>
pub fn append_text<P: AsRef<Path>>(&self, path: P, text: &str) -> DMSCResult<()>
Sourcepub fn write_json<P: AsRef<Path>, T: Serialize>(
&self,
path: P,
value: &T,
) -> DMSCResult<()>
pub fn write_json<P: AsRef<Path>, T: Serialize>( &self, path: P, value: &T, ) -> DMSCResult<()>
Sourcepub fn reports_dir(&self) -> PathBuf
pub fn reports_dir(&self) -> PathBuf
Sourcepub fn observability_dir(&self) -> PathBuf
pub fn observability_dir(&self) -> PathBuf
Sourcepub fn ensure_category_path<S: AsRef<str>, P: AsRef<Path>>(
&self,
category: S,
path_or_name: P,
) -> PathBuf
pub fn ensure_category_path<S: AsRef<str>, P: AsRef<Path>>( &self, category: S, path_or_name: P, ) -> PathBuf
Trait Implementations§
Source§impl Clone for DMSCFileSystem
impl Clone for DMSCFileSystem
Source§fn clone(&self) -> DMSCFileSystem
fn clone(&self) -> DMSCFileSystem
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'py> IntoPyObject<'py> for DMSCFileSystem
impl<'py> IntoPyObject<'py> for DMSCFileSystem
Source§type Target = DMSCFileSystem
type Target = DMSCFileSystem
Source§type Output = Bound<'py, <DMSCFileSystem as IntoPyObject<'py>>::Target>
type Output = Bound<'py, <DMSCFileSystem as IntoPyObject<'py>>::Target>
Source§fn into_pyobject(
self,
py: Python<'py>,
) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
fn into_pyobject( self, py: Python<'py>, ) -> Result<<Self as IntoPyObject<'_>>::Output, <Self as IntoPyObject<'_>>::Error>
Source§impl PyClass for DMSCFileSystem
impl PyClass for DMSCFileSystem
Source§impl PyClassImpl for DMSCFileSystem
impl PyClassImpl for DMSCFileSystem
Source§const IS_BASETYPE: bool = false
const IS_BASETYPE: bool = false
Source§const IS_SUBCLASS: bool = false
const IS_SUBCLASS: bool = false
Source§const IS_MAPPING: bool = false
const IS_MAPPING: bool = false
Source§const IS_SEQUENCE: bool = false
const IS_SEQUENCE: bool = false
Source§const IS_IMMUTABLE_TYPE: bool = false
const IS_IMMUTABLE_TYPE: bool = false
Source§const RAW_DOC: &'static CStr = c"Public-facing filesystem class.\n\nThis struct provides a comprehensive file system abstraction for DMSC, offering safe and reliable\nfile operations with support for atomic writes, directory management, and structured data formats.\x00"
const RAW_DOC: &'static CStr = c"Public-facing filesystem class.\n\nThis struct provides a comprehensive file system abstraction for DMSC, offering safe and reliable\nfile operations with support for atomic writes, directory management, and structured data formats.\x00"
Source§const DOC: &'static CStr
const DOC: &'static CStr
text_signature if a constructor is defined. Read moreSource§type ThreadChecker = SendablePyClass<DMSCFileSystem>
type ThreadChecker = SendablePyClass<DMSCFileSystem>
Source§type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
type PyClassMutability = <<PyAny as PyClassBaseType>::PyClassMutability as PyClassMutability>::MutableChild
Source§type BaseNativeType = PyAny
type BaseNativeType = PyAny
PyAny by default, and when you declare
#[pyclass(extends=PyDict)], it’s PyDict.fn items_iter() -> PyClassItemsIter
fn lazy_type_object() -> &'static LazyTypeObject<Self>
fn dict_offset() -> Option<isize>
fn weaklist_offset() -> Option<isize>
Source§impl PyClassNewTextSignature for DMSCFileSystem
impl PyClassNewTextSignature for DMSCFileSystem
const TEXT_SIGNATURE: &'static str = "(project_root)"
Source§impl PyMethods<DMSCFileSystem> for PyClassImplCollector<DMSCFileSystem>
impl PyMethods<DMSCFileSystem> for PyClassImplCollector<DMSCFileSystem>
fn py_methods(self) -> &'static PyClassItems
Source§impl PyTypeInfo for DMSCFileSystem
impl PyTypeInfo for DMSCFileSystem
Source§fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
fn type_object_raw(py: Python<'_>) -> *mut PyTypeObject
§fn type_object(py: Python<'_>) -> Bound<'_, PyType>
fn type_object(py: Python<'_>) -> Bound<'_, PyType>
§fn is_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type or a subclass of this type.§fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
fn is_exact_type_of(object: &Bound<'_, PyAny>) -> bool
object is an instance of this type.impl DerefToPyAny for DMSCFileSystem
impl ExtractPyClassWithClone for DMSCFileSystem
Auto Trait Implementations§
impl Freeze for DMSCFileSystem
impl RefUnwindSafe for DMSCFileSystem
impl Send for DMSCFileSystem
impl Sync for DMSCFileSystem
impl Unpin for DMSCFileSystem
impl UnwindSafe for DMSCFileSystem
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
impl<'py, T> IntoPyObjectExt<'py> for Twhere
T: IntoPyObject<'py>,
§fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
fn into_bound_py_any(self, py: Python<'py>) -> Result<Bound<'py, PyAny>, PyErr>
self into an owned Python object, dropping type information.§fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
fn into_py_any(self, py: Python<'py>) -> Result<Py<PyAny>, PyErr>
self into an owned Python object, dropping type information and unbinding it
from the 'py lifetime.§fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
fn into_pyobject_or_pyerr(self, py: Python<'py>) -> Result<Self::Output, PyErr>
self into a Python object. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PyErrArguments for T
impl<T> PyErrArguments for T
§impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
impl<T> PyTypeCheck for Twhere
T: PyTypeInfo,
§const NAME: &'static str = T::NAME
const NAME: &'static str = T::NAME
§fn type_check(object: &Bound<'_, PyAny>) -> bool
fn type_check(object: &Bound<'_, PyAny>) -> bool
§fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
fn classinfo_object(py: Python<'_>) -> Bound<'_, PyAny>
isinstance and issubclass function. Read more