error[E0277]: the trait bound `(u8, Reset): ElicitsResponse` is not satisfied --> test/binary/02-port-parameters.rs:9:26 | 9 | let _ = port.tx_recv((0, RESET))?; // Shouldn't work with tx_recv | ------- ^^^^^^^^^^ the trait `ElicitsResponse` is not implemented for `(u8, Reset)` | | | required by a bound introduced by this call | = help: the following other types implement trait `ElicitsResponse`: (u8, u8) (u8, u8, D) (u8, Home) (u8, Home, D) (u8, Renumber) (u8, Renumber, D) (u8, StoreCurrentPosition) (u8, StoreCurrentPosition, D) and $N others note: required by a bound in `zproto::binary::Port::<'a, B, H>::tx_recv` --> src/binary/port.rs | | pub fn tx_recv(&mut self, message: M) -> Result, BinaryError> | ------- required by a bound in this associated function | where | M: traits::TxMessage + traits::ElicitsResponse, | ^^^^^^^^^^^^^^^^^^^^^^^ required by this bound in `Port::<'a, B, H>::tx_recv` error[E0277]: the trait bound `Home: TakesData` is not satisfied --> test/binary/02-port-parameters.rs:10:30 | 10 | let _ = port.tx_recv((0, HOME, 0i32))?; // Shouldn't take parameters | ------- ^^^^ the trait `TakesData` is not implemented for `Home`, which is required by `(u8, Home, i32): TxMessage` | | | required by a bound introduced by this call | = help: the following other types implement trait `TakesData`: > > > > > > > > and $N others = note: required for `(u8, Home, i32)` to implement `TxMessage` note: required by a bound in `zproto::binary::Port::<'a, B, H>::tx_recv` --> src/binary/port.rs | | pub fn tx_recv(&mut self, message: M) -> Result, BinaryError> | ------- required by a bound in this associated function | where | M: traits::TxMessage + traits::ElicitsResponse, | ^^^^^^^^^^^^^^^^^ required by this bound in `Port::<'a, B, H>::tx_recv` error[E0277]: the trait bound `MoveAbsolute: TakesNoData` is not satisfied --> test/binary/02-port-parameters.rs:11:30 | 11 | let _ = port.tx_recv((0, MOVE_ABSOLUTE))?; // Should take parameters | ------- ^^^^^^^^^^^^^ the trait `TakesNoData` is not implemented for `MoveAbsolute`, which is required by `(u8, MoveAbsolute): TxMessage` | | | required by a bound introduced by this call | = help: the following other types implement trait `TakesNoData`: Reset Home Stop ReturnDeviceId ReturnFirmwareVersion ReturnPowerSupplyVoltage ReturnStatus ReturnFirmwareBuild and $N others = note: required for `(u8, MoveAbsolute)` to implement `TxMessage` note: required by a bound in `zproto::binary::Port::<'a, B, H>::tx_recv` --> src/binary/port.rs | | pub fn tx_recv(&mut self, message: M) -> Result, BinaryError> | ------- required by a bound in this associated function | where | M: traits::TxMessage + traits::ElicitsResponse, | ^^^^^^^^^^^^^^^^^ required by this bound in `Port::<'a, B, H>::tx_recv` error[E0277]: the trait bound `MoveAbsolute: TakesData` is not satisfied --> test/binary/02-port-parameters.rs:12:30 | 12 | let _ = port.tx_recv((0, MOVE_ABSOLUTE, false))?; // Wrong parameter type | ------- ^^^^^^^^^^^^^ the trait `TakesData` is not implemented for `MoveAbsolute`, which is required by `(u8, MoveAbsolute, bool): TxMessage` | | | required by a bound introduced by this call | = help: the trait `TakesData` is implemented for `MoveAbsolute` = help: for that trait implementation, expected `i32`, found `bool` = note: required for `(u8, MoveAbsolute, bool)` to implement `TxMessage` note: required by a bound in `zproto::binary::Port::<'a, B, H>::tx_recv` --> src/binary/port.rs | | pub fn tx_recv(&mut self, message: M) -> Result, BinaryError> | ------- required by a bound in this associated function | where | M: traits::TxMessage + traits::ElicitsResponse, | ^^^^^^^^^^^^^^^^^ required by this bound in `Port::<'a, B, H>::tx_recv` error[E0277]: the trait bound `u8: TakesNoData` is not satisfied --> test/binary/02-port-parameters.rs:14:30 | 14 | let _ = port.tx_recv((0, untyped::HOME))?; // u8 commands require an explicit data value | ------- ^^^^^^^^^^^^^ the trait `TakesNoData` is not implemented for `u8`, which is required by `(u8, u8): TxMessage` | | | required by a bound introduced by this call | = help: the following other types implement trait `TakesNoData`: Reset Home Stop ReturnDeviceId ReturnFirmwareVersion ReturnPowerSupplyVoltage ReturnStatus ReturnFirmwareBuild and $N others = note: required for `(u8, u8)` to implement `TxMessage` note: required by a bound in `zproto::binary::Port::<'a, B, H>::tx_recv` --> src/binary/port.rs | | pub fn tx_recv(&mut self, message: M) -> Result, BinaryError> | ------- required by a bound in this associated function | where | M: traits::TxMessage + traits::ElicitsResponse, | ^^^^^^^^^^^^^^^^^ required by this bound in `Port::<'a, B, H>::tx_recv` error[E0277]: the trait bound `zproto::binary::command::types::Error: TakesNoData` is not satisfied --> test/binary/02-port-parameters.rs:16:17 | 16 | port.tx((0, ERROR))?; // Reply-only commands cannot be transmitted | -- ^^^^^ the trait `TakesNoData` is not implemented for `zproto::binary::command::types::Error`, which is required by `({integer}, zproto::binary::command::types::Error): TxMessage` | | | required by a bound introduced by this call | = help: the following other types implement trait `TakesNoData`: Reset Home Stop ReturnDeviceId ReturnFirmwareVersion ReturnPowerSupplyVoltage ReturnStatus ReturnFirmwareBuild and $N others = note: required for `(u8, zproto::binary::command::types::Error)` to implement `TxMessage` note: required by a bound in `zproto::binary::Port::<'a, B, H>::tx` --> src/binary/port.rs | | pub fn tx(&mut self, message: M) -> Result, BinaryError> { | ^^^^^^^^^^^^^^^^^ required by this bound in `Port::<'a, B, H>::tx` error[E0277]: the trait bound `zproto::binary::command::types::Error: TakesData` is not satisfied --> test/binary/02-port-parameters.rs:17:17 | 17 | port.tx((0, ERROR, 0i32))?; // Reply-only commands cannot be transmitted | -- ^^^^^ the trait `TakesData` is not implemented for `zproto::binary::command::types::Error`, which is required by `({integer}, zproto::binary::command::types::Error, i32): TxMessage` | | | required by a bound introduced by this call | = help: the following other types implement trait `TakesData`: > > > > > > > > and $N others = note: required for `(u8, zproto::binary::command::types::Error, i32)` to implement `TxMessage` note: required by a bound in `zproto::binary::Port::<'a, B, H>::tx` --> src/binary/port.rs | | pub fn tx(&mut self, message: M) -> Result, BinaryError> { | ^^^^^^^^^^^^^^^^^ required by this bound in `Port::<'a, B, H>::tx`