pub enum RepoFilesSchema {
V1(SchemaVersion),
}Expand description
A schema for the alpm-repo-files format.
Variants§
V1(SchemaVersion)
Version 1 of the alpm-repo-files specification.
Trait Implementations§
Source§impl Clone for RepoFilesSchema
impl Clone for RepoFilesSchema
Source§fn clone(&self) -> RepoFilesSchema
fn clone(&self) -> RepoFilesSchema
1.0.0§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RepoFilesSchema
impl Debug for RepoFilesSchema
Source§impl Default for RepoFilesSchema
impl Default for RepoFilesSchema
Source§fn default() -> Self
fn default() -> Self
Returns the default schema variant (RepoFilesSchema::V1).
Source§impl FileFormatSchema for RepoFilesSchema
impl FileFormatSchema for RepoFilesSchema
Source§fn inner(&self) -> &SchemaVersion
fn inner(&self) -> &SchemaVersion
Returns a reference to the inner SchemaVersion.
Source§fn derive_from_file(file: impl AsRef<Path>) -> Result<Self, Self::Err>where
Self: Sized,
fn derive_from_file(file: impl AsRef<Path>) -> Result<Self, Self::Err>where
Self: Sized,
Creates a new RepoFilesSchema from a file Path.
§Note
Delegates to Self::derive_from_reader after opening file for reading.
§Errors
Returns an error if
filecannot be opened for reading,- or
Self::derive_from_readerfails.
§Examples
use std::io::Write;
use alpm_common::FileFormatSchema;
use alpm_repo_db::files::RepoFilesSchema;
use tempfile::NamedTempFile;
let data = r#"%FILES%
usr/
usr/bin/
usr/bin/foo
"#;
let mut temp_file = NamedTempFile::new()?;
write!(temp_file, "{data}");
let schema = RepoFilesSchema::derive_from_file(temp_file.path())?;
matches!(schema, RepoFilesSchema::V1(_));Source§fn derive_from_reader(reader: impl Read) -> Result<Self, Self::Err>where
Self: Sized,
fn derive_from_reader(reader: impl Read) -> Result<Self, Self::Err>where
Self: Sized,
Creates a new RepoFilesSchema from a Read implementation.
§Note
Delegates to Self::derive_from_str after reading the reader to string.
§Errors
Returns an error if
readercannot be read to string,- or
Self::derive_from_strfails.
§Examples
use std::io::{Seek, SeekFrom, Write};
use alpm_common::FileFormatSchema;
use alpm_repo_db::files::RepoFilesSchema;
use tempfile::tempfile;
let data = r#"%FILES%
usr/
usr/bin/
usr/bin/foo
"#;
let mut temp_file = tempfile()?;
write!(temp_file, "{data}");
temp_file.seek(SeekFrom::Start(0))?;
let schema = RepoFilesSchema::derive_from_reader(temp_file)?;
matches!(schema, RepoFilesSchema::V1(_));Source§fn derive_from_str(s: &str) -> Result<Self, Self::Err>where
Self: Sized,
fn derive_from_str(s: &str) -> Result<Self, Self::Err>where
Self: Sized,
Creates a new RepoFilesSchema from a string slice.
§Errors
Returns an error if
- a
RepoFilesSchemacannot be derived froms, - or a
RepoFilesV1cannot be created froms.
§Examples
use alpm_common::FileFormatSchema;
use alpm_repo_db::files::RepoFilesSchema;
let data = r#"%FILES%
usr/
usr/bin/
usr/bin/foo
"#;
let schema = RepoFilesSchema::derive_from_str(data)?;
matches!(schema, RepoFilesSchema::V1(_));Source§impl MetadataFile<RepoFilesSchema> for RepoFiles
impl MetadataFile<RepoFilesSchema> for RepoFiles
Source§fn from_file_with_schema(
file: impl AsRef<Path>,
schema: Option<RepoFilesSchema>,
) -> Result<Self, Self::Err>where
Self: Sized,
fn from_file_with_schema(
file: impl AsRef<Path>,
schema: Option<RepoFilesSchema>,
) -> Result<Self, Self::Err>where
Self: Sized,
Creates a new RepoFiles from a file Path and an optional RepoFilesSchema.
§Note
Delegates to Self::from_reader_with_schema after opening file for reading.
§Errors
Returns an error if
- the
filecannot be opened for reading, - or
Self::from_reader_with_schemafails.
§Examples
use std::io::Write;
use alpm_common::MetadataFile;
use alpm_repo_db::files::{RepoFiles, RepoFilesSchema};
use alpm_types::{SchemaVersion, semver_version::Version};
use tempfile::NamedTempFile;
let data = r#"%FILES%
usr/
usr/bin/
usr/bin/foo
"#;
let mut temp_file = NamedTempFile::new()?;
write!(temp_file, "{data}")?;
let files = RepoFiles::from_file_with_schema(
temp_file.path(),
Some(RepoFilesSchema::V1(SchemaVersion::new(Version::new(
1, 0, 0,
)))),
)?;
matches!(files, RepoFiles::V1(_));
assert_eq!(files.as_ref().len(), 3);Source§fn from_reader_with_schema(
reader: impl Read,
schema: Option<RepoFilesSchema>,
) -> Result<Self, Self::Err>where
Self: Sized,
fn from_reader_with_schema(
reader: impl Read,
schema: Option<RepoFilesSchema>,
) -> Result<Self, Self::Err>where
Self: Sized,
Creates a new RepoFiles from a Read implementation and an optional
RepoFilesSchema.
§Note
Delegates to Self::from_str_with_schema after reading reader to string.
§Errors
Returns an error if
- the
readercannot be read to string, - or
Self::from_str_with_schemafails.
§Examples
use std::io::{Seek, SeekFrom, Write};
use alpm_common::MetadataFile;
use alpm_repo_db::files::{RepoFiles, RepoFilesSchema};
use alpm_types::{SchemaVersion, semver_version::Version};
use tempfile::tempfile;
let data = r#"%FILES%
usr/
usr/bin/
usr/bin/foo
"#;
let mut temp_file = tempfile()?;
write!(temp_file, "{data}")?;
temp_file.seek(SeekFrom::Start(0))?;
let files = RepoFiles::from_reader_with_schema(
temp_file,
Some(RepoFilesSchema::V1(SchemaVersion::new(Version::new(
1, 0, 0,
)))),
)?;
matches!(files, RepoFiles::V1(_));
assert_eq!(files.as_ref().len(), 3);Source§fn from_str_with_schema(
s: &str,
schema: Option<RepoFilesSchema>,
) -> Result<Self, Self::Err>where
Self: Sized,
fn from_str_with_schema(
s: &str,
schema: Option<RepoFilesSchema>,
) -> Result<Self, Self::Err>where
Self: Sized,
Creates a new RepoFiles from a string slice and an optional RepoFilesSchema.
§Errors
Returns an error if
schemaisNoneand aRepoFilesSchemacannot be derived froms,- or a
RepoFilesV1cannot be created froms.
§Examples
use alpm_common::MetadataFile;
use alpm_repo_db::files::{RepoFiles, RepoFilesSchema};
use alpm_types::{SchemaVersion, semver_version::Version};
let data = r#"%FILES%
usr/
usr/bin/
usr/bin/foo
"#;
let files = RepoFiles::from_str_with_schema(
data,
Some(RepoFilesSchema::V1(SchemaVersion::new(Version::new(
1, 0, 0,
)))),
)?;
matches!(files, RepoFiles::V1(_));
assert_eq!(files.as_ref().len(), 3);Source§impl PartialEq for RepoFilesSchema
impl PartialEq for RepoFilesSchema
impl Eq for RepoFilesSchema
impl StructuralPartialEq for RepoFilesSchema
Auto Trait Implementations§
impl Freeze for RepoFilesSchema
impl RefUnwindSafe for RepoFilesSchema
impl Send for RepoFilesSchema
impl Sync for RepoFilesSchema
impl Unpin for RepoFilesSchema
impl UnwindSafe for RepoFilesSchema
Blanket Implementations§
§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§unsafe fn clone_to_uninit(&self, dest: *mut u8)
unsafe fn clone_to_uninit(&self, dest: *mut u8)
clone_to_uninit)