Trait mavspec_rust_spec::Dialect
source · pub trait Dialect: MessageSpec + IntoPayload + Sized + Sync + Send {
// Required methods
fn name() -> &'static str;
fn dialect() -> Option<DialectId>;
fn version() -> Option<DialectVersion>;
fn message_info(
id: MessageId
) -> Result<&'static dyn MessageSpec, SpecError>;
fn decode(payload: &Payload) -> Result<Self, SpecError>;
fn spec() -> &'static DialectSpec;
}
Expand description
Interface for autogenerated or custom MAVLink dialect specification.
Required Methods§
sourcefn dialect() -> Option<DialectId>
fn dialect() -> Option<DialectId>
Returns dialect
identifier as specified in MAVLink XML definitions.
sourcefn version() -> Option<DialectVersion>
fn version() -> Option<DialectVersion>
Minor dialect version
as specified in MAVLink XML definitions.
Corresponds to uint8_t_mavlink_version
.
Dialect version appears in some messages like HEARTBEAT. In such cases it is usually not directly set by user.
sourcefn message_info(id: MessageId) -> Result<&'static dyn MessageSpec, SpecError>
fn message_info(id: MessageId) -> Result<&'static dyn MessageSpec, SpecError>
Message specification by id
.
Clients may access this method to retrieve message specification prior to decoding it from payload.
§Errors
Returns SpecError::NotInDialect
if message with specified ID is not supported.
sourcefn spec() -> &'static DialectSpec
fn spec() -> &'static DialectSpec
Dialect specification.
Object Safety§
This trait is not object safe.