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.