3个版本
0.1.2 | 2023年10月27日 |
---|---|
0.1.1 | 2023年10月27日 |
0.1.0 | 2023年10月27日 |
#874 在 嵌入式开发
用于 is31fl3733
10KB
168 行
diff-in-place
一个轻量级的、符合Rust风格的trait,用于原地比较两个常规模数组的每个不同字节,不进行复制。两个数组中每个不等的运行结果都会调用回调函数,并传入起始索引和不同的字节。
这对于嵌入式环境很有用,例如在通过I2c/SMBus等外围总线更新集成芯片的状态时。
此crate适用于在no_std
目标中使用。
示例
use diff_in_place::DiffInPlace;
// In this scenario you want to update the state on the chip without sending all 7 bytes
let state_on_chip = [0, 0, 1, 1, 1, 1, 1];
let mut new_state = state.clone()
new_state[6] = 0;
state_on_chip.diff_in_place(new_state, |i, data| {
// i = 6
// data = [0,]
peripheral.write_at(i, data);
});
免责声明:此库不是官方产品,请自行承担使用风险。