Derive Macro mavspec::rust::derive::Dialect

source ·
#[derive(Dialect)]
{
    // Attributes available to this derive:
    #[name]
    #[dialect]
    #[version]
}
Expand description

Derive MAVLink dialect from enum.

§Usage

Create a simple ad-hoc dialect for meaningless smalltalk:

use mavspec::rust::derive::{Dialect, Enum, Message};

#[repr(u8)]
#[derive(Copy, Clone, Debug, Default, Enum)]
enum Mood {
    #[default]
    Serious = 0,
    Grumpy = 1,
    Delighted = 2,
    Confused = 3,
}

#[derive(Clone, Debug, Message)]
#[message_id(42)]
struct Howdy {
    #[base_type(u8)]
    mood: Mood,
}

#[derive(Clone, Debug, Message)]
#[message_id(43)]
struct FineAndYou {
    #[base_type(u8)]
    mood: Mood,
}

#[derive(Clone, Debug, Dialect)]
#[dialect(1099)]
#[version(99)]
enum SmallTalk {
    Howdy(Howdy),
    FineAndYou(FineAndYou),
}