Derive Macro mavspec_rust_derive::Enum

source ·
#[derive(Enum)]
Expand description

Derive MAVLink enum from enum.

§Usage

Basic usage:

use mavspec::rust::derive::Enum;

#[repr(u8)]
#[derive(Clone, Copy, Debug, Default, Enum)]
enum CustomEnum {
    #[default]
    OptionA = 0,
    OptionB = 1,
    OptionC = 2,
}

It is possible to use constants in variant discriminants:

use mavspec::rust::derive::Enum;

const ONE: u8 = 1;
const TWO: u8 = 2;

#[derive(Enum)]
#[repr(u8)]
#[derive(Copy, Clone, Debug, Default)]
enum CustomEnum {
    #[default]
    OptionA = 0,
    OptionB = ONE, // Constants are supported
    OptionC = TWO, //
}