Enum Entry

Source
pub enum Entry {
    Origin(Dname),
    Include {
        path: PathBuf,
        origin: Option<Dname>,
    },
    Ttl(u32),
    Control {
        name: String,
        start: Pos,
    },
    Record(MasterRecord),
    Blank,
}
Expand description

A master file entry.

Master files consist of a sequence of entries. An entry contains data for a resource record or instructions on how to build resource records from the data.

This enum has variants for each type of master file entries currently defined. It also knows how to scan itself from a scanner via the scan() function.

The variants are defined in seciton 5 of RFC 1035 except where otherwise stated below.

Variants§

§

Origin(Dname)

An $ORIGIN control entry.

This entry contains the origin for relative domain names encountered in subsequent entries.

§

Include

An $INCLUDE control entry.

This entry instructs the parser to insert the content of the given file at this position. The path attribute specifies the path to the file. The interpretation of the contents of this attribute is system dependent. The optional origin attribute contains the initial value of the origin of relative domain names when including the file.

Fields

§path: PathBuf
§origin: Option<Dname>
§

Ttl(u32)

A $TTL control entry.

This entry specifies the value of the TTL field for all subsequent records that do not have it explicitely stated.

This entry is defined in section 4 of RFC 2308.

§

Control

Some other control entry.

Any other entry starting with a dollar sign is a control entry we do not understand. This variant contains the name of the entry in the name attribute and its starting position in start. This can be used to produce a meaningful warning or error message.

Fields

§name: String
§start: Pos
§

Record(MasterRecord)

A resource record.

§

Blank

A blank entry.

Implementations§

Source§

impl Entry

Source

pub fn scan<C: CharSource>( scanner: &mut Scanner<C>, last_owner: Option<&Dname>, last_class: Option<Class>, default_ttl: Option<u32>, ) -> Result<Option<Self>, ScanError>

Scans an entry from a scanner.

The four additional arguments contain the state of scanning for entries.

The last_owner contains the domain name of the last record entry unless this is the first entry. This is used for the owner field if a record entry starts with blanks. The last_class is the class of the last resource record and is used if a class value is missing from a record entry. The origin argument is used for any relative names given in a record entry. The default_ttl value is used if a TTL value is missing from a record entry.

If successful, the function returns some entry or None if it encountered an end of file before an entry even started.

Trait Implementations§

Source§

impl Clone for Entry

Source§

fn clone(&self) -> Entry

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Entry

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl !Freeze for Entry

§

impl RefUnwindSafe for Entry

§

impl Send for Entry

§

impl Sync for Entry

§

impl Unpin for Entry

§

impl UnwindSafe for Entry

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.