Skip to main content

Module ast

Module ast 

Source
Expand description

Abstract syntax tree for exchange structure

This module contains implementation of serde::Serialize and serde::Deserialize for AST structs.

§Deserialize

Implementing a Deserializer page of serde manual says

The deserializer is responsible for mapping the input data into Serde’s data model by invoking exactly one of the methods on the Visitor that it receives.

serde::de::Deserializer trait is implemented for Parameter, Record, and SubSuperRecord. Be sure that this mapping is not only for step_p11-generated structs. This can be used with other Rust structs using serde_derive::Deserialize custom derive:

┌────────────────────┐
│ Exchange Structure │
└─┬──────────────────┘
  │ Deserialier trait  ◄── Implemented here
┌─▼────────────────┐
│ serde data model │
└─┬────┬───────────┘
  │    │ step_p21_derive::Deserialize
  │ ┌──▼─────────────────────────┐
  │ │ step_p11-generated Rust struct │
  │ └────────────────────────────┘
  │ serde_derive::Deserialize
┌─▼─────────────────┐
│ Other Rust struct │
└───────────────────┘

Modules§

de
ser

Structs§

Anchor
DataSection
DATA section in STEP file
Exchange
Entire exchange structure
Record
A struct typed in EXPRESS schema, e.g. A(1.0, 2.0)
ReferenceEntry
SubSuperRecord
A set of Record mapping to complex entity instance, e.g. (A(1) B(2.0) C("3"))
URI

Enums§

AnchorItem
EntityInstance
Each line of data section
Name
Name of an entity instance or a value
Parameter
Primitive value type in STEP data

Traits§

AST
AST portion