diff --git a/services/llio/src/api/i2c_api.rs b/services/llio/src/api/i2c_api.rs index 91bcb0a6d..df80c99df 100644 --- a/services/llio/src/api/i2c_api.rs +++ b/services/llio/src/api/i2c_api.rs @@ -33,17 +33,14 @@ pub(crate) enum I2cCallback { // and create a "public" version for return values via callbacks. But for now, it's pretty // convenient to reach into the state of the I2C machine to debug problems in the callbacks. #[allow(dead_code)] -pub (crate) const I2C_MAX_LEN: usize = 33; // note: due to a regression in Rust 1.56, we can't use the I2C_MAX_LEN symbol in the structure below. So you must manually update that if you change it here. -// pending https://github.com/rust-lang/rust/issues/90195 +pub (crate) const I2C_MAX_LEN: usize = 33; #[derive(Debug, Copy, Clone, Archive, Serialize, Deserialize)] pub struct I2cTransaction { pub bus_addr: u8, // write address and read address are encoded in the packet field below - // NOTE: the number 33 that appears twice below mirrors I2C_MAX_LEN; due to a regression in Rust 1.56 we can't use constants in array types - // pending https://github.com/rust-lang/rust/issues/90195 - pub txbuf: Option<[u8; 33]>, + pub txbuf: Option<[u8; I2C_MAX_LEN]>, pub txlen: u32, - pub rxbuf: Option<[u8; 33]>, + pub rxbuf: Option<[u8; I2C_MAX_LEN]>, pub rxlen: u32, pub listener: Option<(u32, u32, u32, u32)>, // where Rx split transactions should be routed to pub timeout_ms: u32, @@ -78,7 +75,7 @@ pub struct I2cAsyncReadHook { /// The data reported by an I2cAsycReadHook message #[derive(Debug, Copy, Clone, Archive, Serialize, Deserialize)] pub struct I2cReadResult { - pub rxbuf: [u8; 33], + pub rxbuf: [u8; I2C_MAX_LEN], pub rxlen: u32, pub status: I2cStatus, }