Module definition of Controller property decorators.
Controller decorators modify the behavior of the parser during
the reading process. These decorators are applied to properties within
a class, enabling dynamic and flexible parsing scenarios of the child
Primitive.Relation based on runtime data and conditions.
%%{init:{"theme":"dark"}}%%
flowchart TB
subgraph s1[For each properties]
direction TB
PreOperation[__Pre__ property reading operations] --> Condition
click PreOperation "/binspector/modules/PrePost.html" "Documentation for 'Pre' type decorators"
Condition[__Condition__ get the definitive subtype to read based on current state] --> s2
click Condition "/binspector/modules/Condition.html" "Documentation for 'Condtion' type decorators"
subgraph s2[Reading subtype]
Controller[__Controller__ decides when to stop reading the subtype based on a set of arbitrary conditions] --> TypeReading[Read __Relation__ or __Primitive__]
click Controller "/binspector/modules/Controller.html" "Documentation for 'Controller' type decorators"
click TypeReading "/binspector/modules/Primitive.html" "Documentation for 'Primitive' type decorators"
end
TypeReading --> Controller
s2 --> Transform[__Transform__ the value we read into something else]
click Transform "/binspector/modules/Transformer.html" "Documentation for 'Transformer' type decorators"
Transform --> Validate[__Validate__ the final value]
click Validate "/binspector/modules/Validator.html" "Documentation for 'Validator' type decorators"
Validate --> PostOperation[__Post__ property reading operations]
click PostOperation "/binspector/modules/PrePost.html" "Documentation for 'Post' type decorators"
end
PostOperation --> A@{ shape: framed-circle, label: "Stop" }
style Controller fill:blue,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
%%{init:{"theme":"default"}}%%
flowchart TB
subgraph s1[For each properties]
direction TB
PreOperation[__Pre__ property reading operations] --> Condition
click PreOperation "/binspector/modules/PrePost.html" "Documentation for 'Pre' type decorators"
Condition[__Condition__ get the definitive subtype to read based on current state] --> s2
click Condition "/binspector/modules/Condition.html" "Documentation for 'Condtion' type decorators"
subgraph s2[Reading subtype]
Controller[__Controller__ decides when to stop reading the subtype based on a set of arbitrary conditions] --> TypeReading[Read __Relation__ or __Primitive__]
click Controller "/binspector/modules/Controller.html" "Documentation for 'Controller' type decorators"
click TypeReading "/binspector/modules/Primitive.html" "Documentation for 'Primitive' type decorators"
end
TypeReading --> Controller
s2 --> Transform[__Transform__ the value we read into something else]
click Transform "/binspector/modules/Transformer.html" "Documentation for 'Transformer' type decorators"
Transform --> Validate[__Validate__ the final value]
click Validate "/binspector/modules/Validator.html" "Documentation for 'Validator' type decorators"
Validate --> PostOperation[__Post__ property reading operations]
click PostOperation "/binspector/modules/PrePost.html" "Documentation for 'Post' type decorators"
end
PostOperation --> A@{ shape: framed-circle, label: "Stop" }
style Controller fill:blue,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
flowchart TB
subgraph s1[For each properties]
direction TB
PreOperation[__Pre__ property reading operations] --> Condition
click PreOperation "/binspector/modules/PrePost.html" "Documentation for 'Pre' type decorators"
Condition[__Condition__ get the definitive subtype to read based on current state] --> s2
click Condition "/binspector/modules/Condition.html" "Documentation for 'Condtion' type decorators"
subgraph s2[Reading subtype]
Controller[__Controller__ decides when to stop reading the subtype based on a set of arbitrary conditions] --> TypeReading[Read __Relation__ or __Primitive__]
click Controller "/binspector/modules/Controller.html" "Documentation for 'Controller' type decorators"
click TypeReading "/binspector/modules/Primitive.html" "Documentation for 'Primitive' type decorators"
end
TypeReading --> Controller
s2 --> Transform[__Transform__ the value we read into something else]
click Transform "/binspector/modules/Transformer.html" "Documentation for 'Transformer' type decorators"
Transform --> Validate[__Validate__ the final value]
click Validate "/binspector/modules/Validator.html" "Documentation for 'Validator' type decorators"
Validate --> PostOperation[__Post__ property reading operations]
click PostOperation "/binspector/modules/PrePost.html" "Documentation for 'Post' type decorators"
end
PostOperation --> A@{ shape: framed-circle, label: "Stop" }
style Controller fill:blue,stroke:#f66,stroke-width:2px,color:#fff,stroke-dasharray: 5 5
The Controller decorators defines various mechanisms to provide
control over the data reading process and handling dynamic data that depends
on the parsing context.
Fixed-Length Arrays: Define arrays with a statically set or
dynamically determined by another property using the Count
decorator.
Variable-Length Arrays: Read arrays until a specific condition or
EOF marker is encountered using the Until decorator.
Byte-Sized Arrays: Read arrays until the size in byte is met
using the Size decorator.
Matrix: Use Matrix to process two-dimensional arrays
with dynamic dimensions.
Module definition of Controller property decorators.
Controller decorators modify the behavior of the parser during the reading process. These decorators are applied to properties within a class, enabling dynamic and flexible parsing scenarios of the child Primitive.Relation based on runtime data and conditions.
The Controller decorators defines various mechanisms to provide control over the data reading process and handling dynamic data that depends on the parsing context.
Fixed-Length Arrays: Define arrays with a statically set or dynamically determined by another property using the Count decorator.
Variable-Length Arrays: Read arrays until a specific condition or EOF marker is encountered using the Until decorator.
Byte-Sized Arrays: Read arrays until the size in byte is met using the Size decorator.
Matrix: Use Matrix to process two-dimensional arrays with dynamic dimensions.