Skip to main content

Layout

Struct Layout 

Source
pub struct Layout {
Show 17 fields 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 bindings: Vec<Binding>, pub depths: Vec<u8>, pub bound_areas: Vec<Option<u16>>, pub local_size: u32, pub size: u32, pub file_names: Vec<String>, pub linage_counters: Vec<Option<usize>>, pub qualify: Qualify, pub parmcheck: Option<(u32, u32)>, pub numcheck: NumcheckFacts,
}

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: the LINKAGE SECTION’s, then the records whose storage is elsewhere, as bindings says.

§bindings: Vec<Binding>§depths: Vec<u8>

How many programs out the program declaring each LINKAGE record is: 0 for its own.

§bound_areas: Vec<Option<u16>>

For each file whose record area is not in the program’s storage, the LINKAGE record bound to that area.

§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.

§parmcheck: Option<(u32, u32)>

PARMCHECK’s buffer: its offset, at the end of the WORKING-STORAGE the program declares, and its length (assumption numeric::assumptions::PARMCHECK_BUFFER).

§numcheck: NumcheckFacts

Implementations§

Source§

impl Layout

Source

pub fn category(&self, i: usize) -> Option<DataCategory>

An elementary item’s category as INITIALIZE’s phrases name it, a floating-point item’s as NUMERIC (assumption numeric::assumptions::INITIALIZE_FLOAT_NUMERIC); None for a group and for a pointer, index or object reference.

Source

pub fn refmod_category(&self, item: Option<usize>, kind: Kind) -> DataCategory

The category of the elementary item reference modification makes of item of kind, or of a special register of kind when there is no item: national when kind is, alphabetic for an alphabetic item, and alphanumeric otherwise (Language Reference SC27-8713-03, p. 76; assumption numeric::assumptions::INITIALIZE_REFERENCE_MODIFIED).

Source

pub fn length_of_ref<'r>(&self, r: &'r Ref) -> Cow<'r, Ref>

LENGTH OF a table element written without subscripts gives one occurrence’s length (Language Reference SC27-8713-03, p. 23): the reference with each subscript 1.

Source

pub fn initialize_receivers(&self, i: usize, filler: bool) -> Vec<(usize, u32)>

The elementary items INITIALIZE of item i may move to, each occurrence with its offset from i’s start (Language Reference SC27-8713-03, p. 352, rules 1a and 1b): none under a REDEFINES, no FILLER unless filler, and no index, object reference or program pointer.

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 is_argument(&self, ordinal: usize) -> bool

Whether LINKAGE record ordinal is one an argument or SET ADDRESS OF addresses.

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.