#derive #lang #macros #ev3dev

macro ev3dev-lang-rust-derive

Derive macros for ev3dev_lang_rust

2 unstable releases

Uses old Rust 2015

0.8.0 Mar 31, 2020
0.5.0 Dec 8, 2019

43 downloads per month
Used in ev3dev-lang-rust

MIT license

3KB

Derive macros for ev3dev_lang_rust

Build Status Latest version

This crate provides some derive macros to simplify the codebase.

The following traits can be automatically derived:

  • Device
  • Findable
  • Motor
  • TachoMotor
  • ServoMotor
  • DcMotor
  • Sensor

The findable derive needs 3 additional attributes.

  • class_name: &str
  • driver_name: &str
  • port: dyn ev3dev_lang_rust::Motor

Example

The functionallity of the LargeMotor struct consists complitly through derives:

#[derive(Debug, Clone, Device, Findable, Motor, TachoMotor)]
#[class_name = "tacho-motor"]
#[driver_name = "lego-ev3-l-motor"]
#[port = "crate::motors::MotorPort"]
pub struct LargeMotor {
    driver: Driver,
}

Dependencies

~0.4–0.8MB
~21K SLoC