DebianSourceControlFile

Struct DebianSourceControlFile 

Source
pub struct DebianSourceControlFile<'a> { /* private fields */ }
Expand description

A Debian source control file/paragraph.

This control file consists of a single paragraph and defines a source package. This paragraph is typically found in .dsc files and in Sources files in repositories.

The fields are defined at https://www.debian.org/doc/debian-policy/ch-controlfields.html#debian-source-control-files-dsc.

Implementations§

Source§

impl<'a> DebianSourceControlFile<'a>

Source

pub fn from_reader<R: BufRead>(reader: R) -> Result<Self>

Construct an instance by reading data from a reader.

The source must be a Debian source control file with exactly 1 paragraph.

The source must not be PGP armored (e.g. beginning with -----BEGIN PGP SIGNED MESSAGE-----). For PGP armored data, use Self::from_armored_reader().

Source

pub fn from_armored_reader<R: BufRead>(reader: R) -> Result<Self>

Construct an instance by reading data from a reader containing a PGP cleartext signature.

This can be used to parse content from a .dsc file which begins with -----BEGIN PGP SIGNED MESSAGE-----.

An error occurs if the PGP cleartext file is not well-formed or if a PGP parsing error occurs.

The PGP signature is NOT validated. The file will be parsed despite lack of signature verification. This is conceptually insecure. But since Rust has memory safety, some risk is prevented.

Source

pub fn clone_no_signatures(&self) -> Self

Clone without preserving signatures data.

Source

pub fn signatures(&self) -> Option<&CleartextSignatures>

Obtain PGP signatures from this possibly signed file.

Source

pub fn format(&self) -> Result<&str>

Source

pub fn source(&self) -> Result<&str>

Source

pub fn binary(&self) -> Option<Box<dyn Iterator<Item = &str> + '_>>

The binary packages this source package produces.

See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-binary.

Source

pub fn architecture(&self) -> Option<Box<dyn Iterator<Item = &str> + '_>>

The architectures this source package will build for.

See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-architecture.

Source

pub fn version_str(&self) -> Result<&str>

The version number of the package as a string.

See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-version.

Source

pub fn version(&self) -> Result<PackageVersion>

Source

pub fn maintainer(&self) -> Result<&str>

Source

pub fn uploaders(&self) -> Option<Box<dyn Iterator<Item = &str> + '_>>

Source

pub fn homepage(&self) -> Option<&str>

The URL from which the source of this package can be obtained.

See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-homepage.

Source

pub fn testsuite(&self) -> Option<Box<dyn Iterator<Item = &str> + '_>>

Source

pub fn dgit(&self) -> Option<&str>

Describes the Git source from which this package came.

See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-dgit.

Source

pub fn standards_version(&self) -> Result<&str>

The most recent version of the standards this package conforms to.

See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-standards-version.

Source

pub fn depends(&self) -> Option<Result<DependencyList>>

The Depends field, parsed to a DependencyList.

Source

pub fn recommends(&self) -> Option<Result<DependencyList>>

The Recommends field, parsed to a DependencyList.

Source

pub fn suggests(&self) -> Option<Result<DependencyList>>

The Suggests field, parsed to a DependencyList.

Source

pub fn enhances(&self) -> Option<Result<DependencyList>>

The Enhances field, parsed to a DependencyList.

Source

pub fn pre_depends(&self) -> Option<Result<DependencyList>>

The Pre-Depends field, parsed to a DependencyList.

Source

pub fn package_dependency_fields(&self) -> Result<PackageDependencyFields>

Obtain parsed values of all fields defining dependencies.

Source

pub fn package_list( &self, ) -> Option<Box<dyn Iterator<Item = Result<DebianSourceControlFilePackage<'_>>> + '_>>

Packages that can be built from this source package.

See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-package-list.

Source

pub fn checksums_sha1( &self, ) -> Option<Box<dyn Iterator<Item = Result<DebianSourceControlFileEntry<'_>>> + '_>>

List of associated files with SHA-1 checksums.

See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-checksums.

Source

pub fn checksums_sha256( &self, ) -> Option<Box<dyn Iterator<Item = Result<DebianSourceControlFileEntry<'_>>> + '_>>

List of associated files with SHA-256 checksums.

See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-checksums.

Source

pub fn files( &self, ) -> Result<Box<dyn Iterator<Item = Result<DebianSourceControlFileEntry<'_>>> + '_>>

List of associated files with MD5 checksums.

See https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-files.

Source

pub fn file_fetches( &self, checksum: ChecksumType, ) -> Result<Box<dyn Iterator<Item = Result<DebianSourceControlFileFetch>> + '_>>

Obtain DebianSourceControlFileFetch for a given digest variant.

This obtains records that instruct how to fetch the files that compose this source package.

Methods from Deref<Target = ControlParagraph<'a>>§

Source

pub fn is_empty(&self) -> bool

Whether the paragraph is empty.

Empty is defined by the lack of any fields.

Source

pub fn set_field(&mut self, field: ControlField<'a>)

Set the value of a field via a ControlField.

If a field with the same name (case insensitive compare) already exists, the old value will be replaced by the incoming value.

Source

pub fn set_field_from_string(&mut self, name: Cow<'a, str>, value: Cow<'a, str>)

Set the value of a field defined via strings.

If a field with the same name (case insensitive compare) already exists, the old value will be replaced by the incoming value.

Source

pub fn has_field(&self, name: &str) -> bool

Whether a named field is present in this paragraph.

Source

pub fn iter_fields(&self) -> impl Iterator<Item = &ControlField<'a>>

Iterate over fields in this paragraph.

Iteration order is insertion order.

Source

pub fn field(&self, name: &str) -> Option<&ControlField<'a>>

Obtain the field with a given name in this paragraph.

Source

pub fn field_mut(&mut self, name: &str) -> Option<&'a mut ControlField<'_>>

Obtain a mutable reference to the field with a given name.

Source

pub fn required_field(&self, name: &str) -> Result<&ControlField<'a>>

Obtain the named field and error if it isn’t defined.

Source

pub fn field_str(&self, name: &str) -> Option<&str>

Obtain the raw string value of the named field.

Source

pub fn required_field_str(&self, name: &str) -> Result<&str>

Obtain the raw string value of the named field, erroring if the field is not present.

Source

pub fn field_bool(&self, name: &str) -> Option<bool>

Obtain the value of a field, evaluated as a boolean.

The field is true iff its string value is yes.

Source

pub fn field_u64(&self, name: &str) -> Option<Result<u64>>

Obtain the value of a field, evaluated as a u64.

Source

pub fn field_dependency_list( &self, name: &str, ) -> Option<Result<DependencyList>>

Obtain the value of a field, parsed as a DependencyList.

Source

pub fn field_datetime_rfc5322( &self, name: &str, ) -> Option<Result<DateTime<Utc>>>

Obtain the value of a field parsed as an RFC 5322 date string.

This will parse values like Sat, 09 Oct 2021 09:34:56 UTC.

The timezone is always normalized to UTC even if it is expressed differently in the source string.

Source

pub fn field_simple(&self, name: &str) -> Option<Result<ControlFieldValue<'a>>>

Obtain the field with the given name as a ControlFieldValue::Simple, if possible.

Source

pub fn field_folded(&self, name: &str) -> Option<ControlFieldValue<'a>>

Obtain the field with the given name as a ControlFieldValue::Folded.

Source

pub fn field_multiline(&self, name: &str) -> Option<ControlFieldValue<'a>>

Obtain the field with the given name as a ControlFieldValue::Multiline.

Source

pub fn iter_field_words( &self, name: &str, ) -> Option<Box<dyn Iterator<Item = &str> + '_>>

Obtain an iterator of words in the named field.

Source

pub fn iter_field_lines( &self, name: &str, ) -> Option<Box<dyn Iterator<Item = &str> + '_>>

Obtain an iterator of lines in the named field.

Source

pub fn iter_field_comma_delimited( &self, name: &str, ) -> Option<Box<dyn Iterator<Item = &str> + '_>>

Obtain an iterator of comma-delimited values in the named field.

Source

pub fn as_str_hash_map(&self) -> HashMap<&str, &str>

Convert this paragraph to a HashMap.

Values will be the string normalization of the field value, including newlines and leading whitespace.

If a field occurs multiple times, its last value will be recorded in the returned map.

Source

pub fn write<W: Write>(&self, writer: &mut W) -> Result<()>

Serialize the paragraph to a writer.

A trailing newline is written as part of the final field. However, an extra newline is not present. So if serializing multiple paragraphs, an additional line break must be written to effectively terminate this paragraph if the writer is not at EOF.

Trait Implementations§

Source§

impl<'a> Default for DebianSourceControlFile<'a>

Source§

fn default() -> DebianSourceControlFile<'a>

Returns the “default value” for a type. Read more
Source§

impl<'a> Deref for DebianSourceControlFile<'a>

Source§

type Target = ControlParagraph<'a>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'a> DerefMut for DebianSourceControlFile<'a>

Source§

fn deref_mut(&mut self) -> &mut Self::Target

Mutably dereferences the value.
Source§

impl<'a> From<ControlParagraph<'a>> for DebianSourceControlFile<'a>

Source§

fn from(paragraph: ControlParagraph<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<DebianSourceControlFile<'a>> for ControlParagraph<'a>

Source§

fn from(cf: DebianSourceControlFile<'a>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more