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 · Source§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);