sinusoidal 0.10.0

The official SDK to write rust apps for the Sinusoidal Systems Digital Measurement Platform
Documentation
#[macro_use]
pub mod control_api {
  include!(concat!(env!("OUT_DIR"), "/sinusoidal.control_api.rs"));

  // Re-exports of types
  pub use request::Request as Req;
  pub use response::Response as Resp;

  // Re-exports of enums
  pub use Event as WrappedSystemEvent;
  pub use event::Event as SystemEvent;
  pub use stream_id::StreamId::*;

  // An excuse to play with macros
  macro_rules! FwMsgEvent {
    ($ev:tt) => {
      Event { event: Some($ev) }
    };
    ($ev:expr) => {
      Event { event: Some($ev) }
    };
  }

  macro_rules! FwMsgResponse {
    ($resp:tt) => {
      Response {
        response: Some($resp),
      }
    };
    ($resp:expr) => {
      Response {
        response: Some($resp),
      }
    };
  }
}

#[macro_use]
pub mod streaming_api {
  include!(concat!(env!("OUT_DIR"), "/sinusoidal.streaming_api.rs"));

  macro_rules! StreamPacketDatagram {
    ($bytes:expr) => {
      StreamPacket {
        payload: Some(stream_packet::Payload::Datagrams($bytes)),
      }
    };
  }

  macro_rules! StreamPacketPtp {
    ($pkt:tt) => {
      StreamPacket {
        payload: Some(stream_packet::Payload::Ptp($pkt)),
      }
    };
    ($pkt:expr) => {
      StreamPacket {
        payload: Some(stream_packet::Payload::Ptp($pkt)),
      }
    };
  }

  macro_rules! StreamPacketGoose {
    ($pkt:tt) => {
      StreamPacket {
        payload: Some(stream_packet::Payload::Goose($pkt)),
      }
    };
    ($pkt:expr) => {
      StreamPacket {
        payload: Some(stream_packet::Payload::Goose($pkt)),
      }
    };
  }
}