← All compilation units

Flyology.Data_Structures.Storage_Types.Elements

Description

Exact bytes in one stored element.

Alignment

Alignment : constant Positive := Representation.Alignment;

Required alignment of every stored element.

Bind

procedure Bind (Item : out Builder; Target : Immutable_Storage_View)

Bind a scoped unpublished builder.

Parameters
Item

Builder initialized on success

Target

Validated unpublished element storage @exclude

Bind

procedure Bind (Item : out Const_Ref; Source : Immutable_Storage_View)

Bind a scoped read-only reference.

Parameters
Item

Reference initialized on success

Source

Validated published element storage @exclude

Builder

subtype Builder is Representation.Builder;

Scoped builder for unpublished element bytes.

Const_Ref

subtype Const_Ref is Representation.Const_Ref;

Scoped reference to published element bytes.

Construct

procedure Construct (Item : in out Builder; Data : Source)

Construct in unpublished element storage. A bound direct constructor writes the slot without a temporary; otherwise Create_Value produces one independent immutable Value which is copied before publication.

Parameters
Item

Active unpublished builder

Data

Application value to construct @exclude

Copy

procedure Copy (Source : Immutable_Storage_View; Target : Immutable_Storage_View)

Copy validated published storage into validated unpublished storage.

Parameters
Source

Validated published element storage

Target

Validated unpublished element storage @exclude

Copy_From

function Copy_From (Source : Immutable_Storage_View) return Value

Copy validated published bytes into an independent Value.

Parameters
Source

Validated published element storage

Return value

Independent immutable representation @exclude

Copy_To

procedure Copy_To (Item : Value; Target : Immutable_Storage_View)

Copy an immutable Value into validated unpublished storage.

Parameters
Item

Independent immutable value

Target

Validated unpublished element storage @exclude

Create

function Create (Item : Source) return Value

Create an independent immutable representation.

Parameters
Item

Application value to represent

Return value

Independent immutable bytes

Create_Value

function Create_Value (Item : Source_Type) return Representation.Value
Parameters
Item
Return value

Direct_Constructor

Direct_Constructor : access procedure (Item : in out Representation.Builder; Data : Source_Type) := null;

Equivalent

function Equivalent (Left : Const_Ref; Right : Const_Ref) return Boolean

Compare two published immutable representations.

Parameters
Left

First active reference

Right

Second active reference

Return value

True when every representation byte matches @exclude

Equivalent

function Equivalent (Left : Value; Right : Const_Ref) return Boolean

Compare independent and published immutable bytes.

Parameters
Left

Independent representation

Right

Active published reference

Return value

True when every representation byte matches @exclude

Hash

function Hash (Item : Const_Ref) return Interfaces.Unsigned_64

Hash published immutable bytes in place.

Parameters
Item

Active published reference

Return value

Stable 64-bit FNV-1a hash @exclude

Hash

function Hash (Item : Value) return Interfaces.Unsigned_64

Hash independent immutable bytes.

Parameters
Item

Immutable representation

Return value

Stable 64-bit FNV-1a hash @exclude

Observe

function Observe (Item : Const_Ref) return Observed

Observe published bytes without first copying their representation.

Parameters
Item

Active read-only reference

Return value

Application observation

Observe_Value

function Observe_Value (Item : Representation.Const_Ref) return Observed_Type
Parameters
Item
Return value

Observed

subtype Observed is Observed_Type;

Application value returned by the bound observation operation.

Observed_Type

type Observed_Type is private;

Representation

with package Representation is new Flyology.Data_Structures.Storage_Types.Immutable (<>);

Signature

Signature : constant Interfaces.Unsigned_64 := Representation.Signature;

Stable nonzero semantic type signature.

Size

Size : constant Positive := Representation.Size;

Exact bytes in one stored element.

Source

subtype Source is Source_Type;

Application value accepted by creation and construction operations.

Source_Type

type Source_Type is private;

Value

subtype Value is Representation.Value;

Independent immutable byte-backed value.

Version

Version : constant Interfaces.Unsigned_32 := Representation.Version;

Nonzero representation layout version.