pub enum SourceInfo {
V1(SourceInfoV1),
}
Expand description
The representation of SRCINFO data.
Tracks all available versions of the file format.
Variants§
V1(SourceInfoV1)
The SRCINFO file format.
Trait Implementations§
Source§impl Clone for SourceInfo
impl Clone for SourceInfo
Source§fn clone(&self) -> SourceInfo
fn clone(&self) -> SourceInfo
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SourceInfo
impl Debug for SourceInfo
Source§impl<'de> Deserialize<'de> for SourceInfo
impl<'de> Deserialize<'de> for SourceInfo
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl FromStr for SourceInfo
impl FromStr for SourceInfo
Source§fn from_str(s: &str) -> Result<Self, Self::Err>
fn from_str(s: &str) -> Result<Self, Self::Err>
Creates a SourceInfo
from string slice s
.
Calls SourceInfo::from_str_with_schema
with schema
set to None
.
§Errors
Returns an error if
- a
SourceInfoSchema
cannot be derived froms
, - or the detected variant of
SourceInfo
cannot be constructed froms
.
Source§impl MetadataFile<SourceInfoSchema> for SourceInfo
impl MetadataFile<SourceInfoSchema> for SourceInfo
Source§fn from_file_with_schema(
file: impl AsRef<Path>,
schema: Option<SourceInfoSchema>,
) -> Result<Self, Error>
fn from_file_with_schema( file: impl AsRef<Path>, schema: Option<SourceInfoSchema>, ) -> Result<Self, Error>
Creates a SourceInfo
from file
, optionally validated using a SourceInfoSchema
.
Opens the file
and defers to SourceInfo::from_reader_with_schema
.
§Note
To automatically derive the SourceInfoSchema
, use SourceInfo::from_file
.
§Examples
use std::{fs::File, io::Write};
use alpm_common::{FileFormatSchema, MetadataFile};
use alpm_srcinfo::{SourceInfo, SourceInfoSchema};
use alpm_types::{SchemaVersion, semver_version::Version};
// Prepare a file with SRCINFO data
let srcinfo_file = tempfile::NamedTempFile::new()?;
let (file, srcinfo_data) = {
let srcinfo_data = r#"
pkgbase = example
pkgdesc = An example
pkgver = 0.1.0
pkgrel = 1
pkgname = example
"#;
let mut output = File::create(&srcinfo_file)?;
write!(output, "{}", srcinfo_data)?;
(srcinfo_file, srcinfo_data)
};
let srcinfo = SourceInfo::from_file_with_schema(
file.path().to_path_buf(),
Some(SourceInfoSchema::V1(SchemaVersion::new(Version::new(
1, 0, 0,
)))),
)?;
§Errors
Returns an error if
- the
file
cannot be opened for reading, - no variant of
SourceInfo
can be constructed from the contents offile
, - or
schema
isSome
and theSourceInfoSchema
does not match the contents offile
.
Source§fn from_reader_with_schema(
reader: impl Read,
schema: Option<SourceInfoSchema>,
) -> Result<Self, Error>
fn from_reader_with_schema( reader: impl Read, schema: Option<SourceInfoSchema>, ) -> Result<Self, Error>
Creates a SourceInfo
from a reader
, optionally validated using a
SourceInfoSchema
.
Reads the reader
to string and defers to SourceInfo::from_str_with_schema
.
§Note
To automatically derive the SourceInfoSchema
, use SourceInfo::from_reader
.
§Examples
use std::{fs::File, io::Write};
use alpm_common::MetadataFile;
use alpm_srcinfo::{SourceInfo, SourceInfoSchema};
use alpm_types::{SchemaVersion, semver_version::Version};
let srcinfo_file = tempfile::NamedTempFile::new()?;
// Prepare a reader with SRCINFO data
let (reader, srcinfo_data) = {
let srcinfo_data = r#"
pkgbase = example
pkgdesc = An example
pkgver = 0.1.0
pkgrel = 1
pkgname = example
"#;
let mut output = File::create(&srcinfo_file)?;
write!(output, "{}", srcinfo_data)?;
(File::open(&srcinfo_file.path())?, srcinfo_data)
};
let srcinfo = SourceInfo::from_reader_with_schema(
reader,
Some(SourceInfoSchema::V1(SchemaVersion::new(Version::new(
1, 0, 0,
)))),
)?;
§Errors
Returns an error if
- the
reader
cannot be read to string, - no variant of
SourceInfo
can be constructed from the contents of thereader
, - or
schema
isSome
and theSourceInfoSchema
does not match the contents of thereader
.
Source§fn from_str_with_schema(
s: &str,
schema: Option<SourceInfoSchema>,
) -> Result<Self, Error>
fn from_str_with_schema( s: &str, schema: Option<SourceInfoSchema>, ) -> Result<Self, Error>
Creates a SourceInfo
from string slice, optionally validated using a
SourceInfoSchema
.
If schema
is None
attempts to detect the SourceInfoSchema
from s
.
Attempts to create a SourceInfo
variant that corresponds to the SourceInfoSchema
.
§Note
To automatically derive the SourceInfoSchema
, use SourceInfo::from_str
.
§Examples
use std::{fs::File, io::Write};
use alpm_common::MetadataFile;
use alpm_srcinfo::{SourceInfo, SourceInfoSchema};
use alpm_types::{SchemaVersion, semver_version::Version};
let srcinfo_data = r#"
pkgbase = example
pkgdesc = An example
pkgver = 0.1.0
pkgrel = 1
pkgname = example
"#;
let srcinfo = SourceInfo::from_str_with_schema(
srcinfo_data,
Some(SourceInfoSchema::V1(SchemaVersion::new(Version::new(
1, 0, 0,
)))),
)?;
§Errors
Returns an error if
schema
isSome
and the specified variant ofSourceInfo
cannot be constructed froms
,schema
isNone
and- a
SourceInfoSchema
cannot be derived froms
, - or the detected variant of
SourceInfo
cannot be constructed froms
.
- a