pub struct ControlParagraph<'a> { /* private fields */ }Expand description
A paragraph in a control file.
A paragraph is an ordered series of control fields.
Field names are case insensitive on read and case preserving on set.
Paragraphs can only contain a single occurrence of a field and this is enforced through the mutation APIs.
Implementations§
Source§impl<'a> ControlParagraph<'a>
impl<'a> ControlParagraph<'a>
Sourcepub fn is_empty(&self) -> bool
pub fn is_empty(&self) -> bool
Whether the paragraph is empty.
Empty is defined by the lack of any fields.
Sourcepub fn set_field(&mut self, field: ControlField<'a>)
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.
Sourcepub fn set_field_from_string(&mut self, name: Cow<'a, str>, value: Cow<'a, str>)
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.
Sourcepub fn has_field(&self, name: &str) -> bool
pub fn has_field(&self, name: &str) -> bool
Whether a named field is present in this paragraph.
Sourcepub fn iter_fields(&self) -> impl Iterator<Item = &ControlField<'a>>
pub fn iter_fields(&self) -> impl Iterator<Item = &ControlField<'a>>
Iterate over fields in this paragraph.
Iteration order is insertion order.
Sourcepub fn field(&self, name: &str) -> Option<&ControlField<'a>>
pub fn field(&self, name: &str) -> Option<&ControlField<'a>>
Obtain the field with a given name in this paragraph.
Sourcepub fn field_mut(&mut self, name: &str) -> Option<&'a mut ControlField<'_>>
pub fn field_mut(&mut self, name: &str) -> Option<&'a mut ControlField<'_>>
Obtain a mutable reference to the field with a given name.
Sourcepub fn required_field(&self, name: &str) -> Result<&ControlField<'a>>
pub fn required_field(&self, name: &str) -> Result<&ControlField<'a>>
Obtain the named field and error if it isn’t defined.
Sourcepub fn field_str(&self, name: &str) -> Option<&str>
pub fn field_str(&self, name: &str) -> Option<&str>
Obtain the raw string value of the named field.
Sourcepub fn required_field_str(&self, name: &str) -> Result<&str>
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.
Sourcepub fn field_bool(&self, name: &str) -> Option<bool>
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.
Sourcepub fn field_u64(&self, name: &str) -> Option<Result<u64>>
pub fn field_u64(&self, name: &str) -> Option<Result<u64>>
Obtain the value of a field, evaluated as a u64.
Sourcepub fn field_dependency_list(
&self,
name: &str,
) -> Option<Result<DependencyList>>
pub fn field_dependency_list( &self, name: &str, ) -> Option<Result<DependencyList>>
Obtain the value of a field, parsed as a DependencyList.
Sourcepub fn field_datetime_rfc5322(
&self,
name: &str,
) -> Option<Result<DateTime<Utc>>>
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.
Sourcepub fn field_simple(&self, name: &str) -> Option<Result<ControlFieldValue<'a>>>
pub fn field_simple(&self, name: &str) -> Option<Result<ControlFieldValue<'a>>>
Obtain the field with the given name as a ControlFieldValue::Simple, if possible.
Sourcepub fn field_folded(&self, name: &str) -> Option<ControlFieldValue<'a>>
pub fn field_folded(&self, name: &str) -> Option<ControlFieldValue<'a>>
Obtain the field with the given name as a ControlFieldValue::Folded.
Sourcepub fn field_multiline(&self, name: &str) -> Option<ControlFieldValue<'a>>
pub fn field_multiline(&self, name: &str) -> Option<ControlFieldValue<'a>>
Obtain the field with the given name as a ControlFieldValue::Multiline.
Sourcepub fn iter_field_words(
&self,
name: &str,
) -> Option<Box<dyn Iterator<Item = &str> + '_>>
pub fn iter_field_words( &self, name: &str, ) -> Option<Box<dyn Iterator<Item = &str> + '_>>
Obtain an iterator of words in the named field.
Sourcepub fn iter_field_lines(
&self,
name: &str,
) -> Option<Box<dyn Iterator<Item = &str> + '_>>
pub fn iter_field_lines( &self, name: &str, ) -> Option<Box<dyn Iterator<Item = &str> + '_>>
Obtain an iterator of lines in the named field.
Sourcepub fn iter_field_comma_delimited(
&self,
name: &str,
) -> Option<Box<dyn Iterator<Item = &str> + '_>>
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.
Sourcepub fn as_str_hash_map(&self) -> HashMap<&str, &str>
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.
Sourcepub fn write<W: Write>(&self, writer: &mut W) -> Result<()>
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> Clone for ControlParagraph<'a>
impl<'a> Clone for ControlParagraph<'a>
Source§fn clone(&self) -> ControlParagraph<'a>
fn clone(&self) -> ControlParagraph<'a>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<'a> Debug for ControlParagraph<'a>
impl<'a> Debug for ControlParagraph<'a>
Source§impl<'a> Default for ControlParagraph<'a>
impl<'a> Default for ControlParagraph<'a>
Source§fn default() -> ControlParagraph<'a>
fn default() -> ControlParagraph<'a>
Source§impl<'a> Display for ControlParagraph<'a>
impl<'a> Display for ControlParagraph<'a>
Source§impl<'a> From<BinaryPackageControlFile<'a>> for ControlParagraph<'a>
impl<'a> From<BinaryPackageControlFile<'a>> for ControlParagraph<'a>
Source§fn from(cf: BinaryPackageControlFile<'a>) -> Self
fn from(cf: BinaryPackageControlFile<'a>) -> Self
Source§impl<'a> From<ControlParagraph<'a>> for BinaryPackageControlFile<'a>
impl<'a> From<ControlParagraph<'a>> for BinaryPackageControlFile<'a>
Source§fn from(paragraph: ControlParagraph<'a>) -> Self
fn from(paragraph: ControlParagraph<'a>) -> Self
Source§impl<'a> From<ControlParagraph<'a>> for DebianSourceControlFile<'a>
impl<'a> From<ControlParagraph<'a>> for DebianSourceControlFile<'a>
Source§fn from(paragraph: ControlParagraph<'a>) -> Self
fn from(paragraph: ControlParagraph<'a>) -> Self
Source§impl<'a> From<ControlParagraph<'a>> for ReleaseFile<'a>
impl<'a> From<ControlParagraph<'a>> for ReleaseFile<'a>
Source§fn from(paragraph: ControlParagraph<'a>) -> Self
fn from(paragraph: ControlParagraph<'a>) -> Self
Source§impl<'a> From<DebianSourceControlFile<'a>> for ControlParagraph<'a>
impl<'a> From<DebianSourceControlFile<'a>> for ControlParagraph<'a>
Source§fn from(cf: DebianSourceControlFile<'a>) -> Self
fn from(cf: DebianSourceControlFile<'a>) -> Self
Source§impl<'a> From<ReleaseFile<'a>> for ControlParagraph<'a>
impl<'a> From<ReleaseFile<'a>> for ControlParagraph<'a>
Source§fn from(release: ReleaseFile<'a>) -> Self
fn from(release: ReleaseFile<'a>) -> Self
Source§impl<'a> Hash for ControlParagraph<'a>
impl<'a> Hash for ControlParagraph<'a>
Source§impl<'a> Ord for ControlParagraph<'a>
impl<'a> Ord for ControlParagraph<'a>
Source§fn cmp(&self, other: &ControlParagraph<'a>) -> Ordering
fn cmp(&self, other: &ControlParagraph<'a>) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl<'a> PartialEq for ControlParagraph<'a>
impl<'a> PartialEq for ControlParagraph<'a>
Source§impl<'a> PartialOrd for ControlParagraph<'a>
impl<'a> PartialOrd for ControlParagraph<'a>
impl<'a> Eq for ControlParagraph<'a>
impl<'a> StructuralPartialEq for ControlParagraph<'a>
Auto Trait Implementations§
impl<'a> Freeze for ControlParagraph<'a>
impl<'a> RefUnwindSafe for ControlParagraph<'a>
impl<'a> Send for ControlParagraph<'a>
impl<'a> Sync for ControlParagraph<'a>
impl<'a> Unpin for ControlParagraph<'a>
impl<'a> UnwindSafe for ControlParagraph<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.