Skip to content

Commit 69121a8

Browse files
authored
Merge pull request #89 from peterdelevoryas/master
core: Relax lifetime constraint on `msgs` in `I2CTransfer::transfer()`
2 parents 499e902 + e6fbc13 commit 69121a8

File tree

5 files changed

+7
-5
lines changed

5 files changed

+7
-5
lines changed

.github/workflows/ci.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ jobs:
4949

5050
ci-macos:
5151
name: CI-macOS
52-
runs-on: macos-11
52+
runs-on: macos-14
5353

5454
strategy:
5555
matrix:

CHANGELOG.md

+2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ Versioning](https://semver.org/spec/v2.0.0.html).
88

99
## [Unreleased]
1010

11+
- Relax lifetime constraint on `I2CTransfer::transfer` `msgs` reference
12+
1113
## [v0.6.1] - 2024-05-09
1214

1315
- Properly ellide the start bit when sending a series of I2C messages as a

src/core.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ pub trait I2CTransfer<'a> {
137137
/// Performs multiple serially chained I2C read/write transactions. On
138138
/// success the return code is the number of successfully executed
139139
/// transactions
140-
fn transfer(&mut self, msgs: &'a mut [Self::Message]) -> Result<u32, Self::Error>;
140+
fn transfer(&mut self, msgs: &mut [Self::Message]) -> Result<u32, Self::Error>;
141141
}
142142

143143
/// Read/Write I2C message

src/linux.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ impl<'a> I2CTransfer<'a> for LinuxI2CDevice {
299299
type Message = LinuxI2CMessage<'a>;
300300

301301
/// Issue the provided sequence of I2C transactions
302-
fn transfer(&mut self, messages: &'a mut [Self::Message]) -> Result<u32, LinuxI2CError> {
302+
fn transfer(&mut self, messages: &mut [Self::Message]) -> Result<u32, LinuxI2CError> {
303303
let msg_type = |flag: u16| flag & I2CMessageFlags::READ.bits();
304304
let mut prev_msg_type = None;
305305
for msg in messages.iter_mut() {
@@ -335,7 +335,7 @@ impl<'a> I2CTransfer<'a> for LinuxI2CBus {
335335
type Message = LinuxI2CMessage<'a>;
336336

337337
/// Issue the provided sequence of I2C transactions
338-
fn transfer(&mut self, msgs: &'a mut [Self::Message]) -> Result<u32, LinuxI2CError> {
338+
fn transfer(&mut self, msgs: &mut [Self::Message]) -> Result<u32, LinuxI2CError> {
339339
ffi::i2c_rdwr(self.as_raw_fd(), msgs).map_err(From::from)
340340
}
341341
}

src/mock.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ where
152152
type Message = MockI2CMessage<'a>;
153153

154154
/// Issue the provided sequence of I2C transactions
155-
fn transfer(&mut self, messages: &'a mut [Self::Message]) -> Result<u32, Self::Error> {
155+
fn transfer(&mut self, messages: &mut [Self::Message]) -> Result<u32, Self::Error> {
156156
for msg in messages.iter_mut() {
157157
match &mut msg.msg_type {
158158
MessageType::Read(data) => self.read(data)?,

0 commit comments

Comments
 (0)