5 releases
Uses old Rust 2015
0.1.3 | Nov 20, 2017 |
---|---|
0.1.2 | Nov 8, 2017 |
0.1.1 | Nov 8, 2017 |
0.1.0 | Nov 8, 2017 |
0.0.1 | Oct 19, 2017 |
#19 in #uavcan
Used in dsdl_compiler
99KB
2K
SLoC
DSDL parser
A parser for the DSDL (Data structure description language) used in uavcan
DSDL
DSDL defines the data types transfered with uavcan. For full description of DSDL, have a look at the specification
Examples
Parse DSDL directory
use dsdl_parser::DSDL;
assert!(DSDL::read("tests/dsdl/uavcan").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/uavcan/").unwrap();
println!("{}", dsdl.get_file("uavcan.protocol.GetNodeInfo").unwrap());
Calculate data type signature
use dsdl_parser::DSDL;
let dsdl = DSDL::read("./tests/dsdl/uavcan/").unwrap();
assert_eq!(dsdl.data_type_signature("uavcan.protocol.GetNodeInfo").unwrap(), 0xee468a8121c46a9e);
License
Licensed under either of
-
Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
-
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Dependencies
~1.5MB
~25K SLoC