Crate dsdl_parser [−] [src]
A parser for the DSDL (Data structure description language) used in uavcan
For full description have a look at the specification
Examples
Parse DSDL directory
use dsdl_parser::DSDL; assert!(DSDL::read("tests/dsdl/").is_ok());
Parse single file
use dsdl_parser::DSDL; assert!(DSDL::read("tests/dsdl/uavcan/protocol/341.NodeStatus.uavcan").is_ok());
Display a file
use dsdl_parser::DSDL; let dsdl = DSDL::read("./tests/dsdl/").unwrap(); println!("{}", dsdl.get_file("uavcan.protocol.GetNodeInfo").unwrap());
Calculate data type signature
use dsdl_parser::DSDL; let dsdl = DSDL::read("./tests/dsdl/").unwrap(); assert_eq!(dsdl.data_type_signature("uavcan.protocol.GetNodeInfo").unwrap(), 0xee468a8121c46a9e);
Structs
Comment |
A comment |
CompositeType |
A CompositeType is what the uavcan specification refers to as "Nested data structures" |
ConstDefinition |
A constant definition |
DSDL |
The |
FieldDefinition |
A Field definition |
File |
A DSDL file |
FileName |
Uniquely defines a DSDL file |
Ident |
An Identifier (name) |
MessageDefinition |
An Uavcan message definition |
NormalizedFile |
A normalized |
ServiceDefinition |
An Uavcan service definition |
Size |
Used to determin size of e.g. DynamicArray or a StaticArray |
Version |
A dsdl file version |
Enums
ArrayInfo |
Uavcan array information |
AttributeDefinition |
An attribute definition is either a |
CastMode |
Cast mode defines the rules of conversion from the native value of a certain programming language to the serialized field value. |
Const |
A constant must be a primitive scalar type (i.e., arrays and nested data structures are not allowed as constant types). |
Directive |
An Uavcan Directive |
Line |
A |
ParseCastModeError | |
ParseDirectiveError | |
ParseFileNameError | |
ParsePrimitiveTypeError | |
PrimitiveType |
An Uavcan |
Ty |
An Uavcan data type |
TypeDefinition |
A DSDL type definition. |