Skip to content

Commit a4daebd

Browse files
mkroeningIsaacWoods
authored andcommitted
feat: accept FnOnce for updating commands
This backwards-compatible change makes the interface more general. `FnOnce` is a supertrait of `FnMut` and `Fn`. `FnOnce` allows people to use closures that capture non-clone types. Signed-off-by: Martin Kröning <martin.kroening@eonerc.rwth-aachen.de>
1 parent 917dcc4 commit a4daebd

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/lib.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ impl PciHeader {
167167

168168
pub fn update_command<F>(&self, access: &impl ConfigRegionAccess, f: F)
169169
where
170-
F: Fn(CommandRegister) -> CommandRegister,
170+
F: FnOnce(CommandRegister) -> CommandRegister,
171171
{
172172
let mut data = unsafe { access.read(self.0, 0x4) };
173173
let new_command = f(CommandRegister::from_bits_truncate(data.get_bits(0..16) as u16));
@@ -248,7 +248,7 @@ impl EndpointHeader {
248248

249249
pub fn update_command<F>(&self, access: &impl ConfigRegionAccess, f: F)
250250
where
251-
F: Fn(CommandRegister) -> CommandRegister,
251+
F: FnOnce(CommandRegister) -> CommandRegister,
252252
{
253253
self.header().update_command(access, f);
254254
}
@@ -470,7 +470,7 @@ impl PciPciBridgeHeader {
470470

471471
pub fn update_command<F>(&self, access: &impl ConfigRegionAccess, f: F)
472472
where
473-
F: Fn(CommandRegister) -> CommandRegister,
473+
F: FnOnce(CommandRegister) -> CommandRegister,
474474
{
475475
self.header().update_command(access, f);
476476
}

0 commit comments

Comments
 (0)