use crate::metadata::FileMetadata;
use crate::metadata::FileSystemId;
use crate::path::Path;
#[derive(Clone, Debug, PartialEq)]
pub struct OpenedFileInfo {
filesystem_id: FileSystemId,
path: Path,
metadata: Option<Box<FileMetadata>>,
}
impl OpenedFileInfo {
#[inline]
#[must_use]
pub fn new(filesystem_id: FileSystemId, path: Path) -> Self {
Self {
filesystem_id,
path,
metadata: None,
}
}
#[inline]
#[must_use]
pub fn with_metadata(mut self, metadata: FileMetadata) -> Self {
self.metadata = Some(Box::new(metadata));
self
}
#[inline]
#[must_use]
pub const fn filesystem_id(&self) -> &FileSystemId {
&self.filesystem_id
}
#[inline]
#[must_use]
pub const fn path(&self) -> &Path {
&self.path
}
#[inline]
#[must_use]
pub fn metadata(&self) -> Option<&FileMetadata> {
self.metadata.as_deref()
}
}