Enum domain::master::entry::Entry[][src]

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

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<Bytes>)

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 of Include

path: PathBuforigin: Option<Dname<Bytes>>
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 of Control

name: Stringstart: Pos
Record(MasterRecord)

A resource record.

Blank

A blank entry.

Implementations

impl Entry[src]

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

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

impl Clone for Entry[src]

impl Debug for Entry[src]

Auto Trait Implementations

impl RefUnwindSafe for Entry

impl Send for Entry

impl Sync for Entry

impl Unpin for Entry

impl UnwindSafe for Entry

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<Source, Target> OctetsInto<Target> for Source where
    Target: OctetsFrom<Source>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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