Skip to main content

Layout

Struct Layout 

Source
pub struct Layout {
    pub items: Vec<Item>,
    pub conditions: Vec<Condition>,
    pub edits: Vec<Vec<Sym>>,
    pub currencies: Vec<String>,
    pub file_areas: Vec<(u32, u32)>,
    pub record_lengths: Vec<Option<(u32, u32)>>,
    pub linkage_roots: Vec<usize>,
    pub local_size: u32,
    pub size: u32,
    pub file_names: Vec<String>,
    pub linage_counters: Vec<Option<usize>>,
    pub qualify: Qualify,
}

Fields§

§items: Vec<Item>§conditions: Vec<Condition>§edits: Vec<Vec<Sym>>

The positions of each edited PICTURE.

§currencies: Vec<String>

The currency sign value each edited PICTURE’s currency symbol stands for, empty without one.

§file_areas: Vec<(u32, u32)>

Offset and size of each file’s record area, in declaration order.

§record_lengths: Vec<Option<(u32, u32)>>

The least and greatest length of each file’s level-01 records, an OCCURS DEPENDING ON table counted at its fewest and at its most occurrences (Language Reference SC27-8713-03, p. 188); None for a file with none.

§linkage_roots: Vec<usize>

The item of each LINKAGE record, in order.

§local_size: u32

Bytes of LOCAL-STORAGE each activation gets.

§size: u32§file_names: Vec<String>

Each FD and SD name, in declaration order: the highest qualifier of its records.

§linage_counters: Vec<Option<usize>>

The LINAGE-COUNTER item of each file whose FD has LINAGE, which its file-name qualifies.

§qualify: Qualify

The QUALIFY option Layout::resolve follows.

Implementations§

Source§

impl Layout

Source

pub fn name_files( &mut self, files: &[FileDecl], linage_counters: Vec<Option<usize>>, )

Names the files, so that a file-name qualifies its records and its LINAGE-COUNTER.

Source

pub fn resolve( &self, name: &str, qualifiers: &[String], pos: Pos, ) -> Result<Resolved, Error>

A data item, condition-name or LINAGE-COUNTER named with its qualifiers, the last of which may be the file-name of an FD or SD (Language Reference SC27-8713-03, pp. 69-70). Under QUALIFY(EXTEND) a reference the standard’s rules find ambiguous names the one candidate it gives a complete set of qualifiers, if only one (Programming Guide SC27-8714-03, p. 400; Language Reference SC27-8713-03, pp. 67-68).

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, 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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.