compio_driver/sys/driver/fusion/
op.rs1use super::*;
2
3pub trait OpCode: PollOpCode + IourOpCode {}
7
8impl<T: PollOpCode + IourOpCode + ?Sized> OpCode for T {}
9
10pub(crate) trait Carry: iour::Carry + poll::Carry {
11 unsafe fn set_result(&mut self, result: &io::Result<usize>, extra: &crate::Extra);
12}
13
14impl<C: iour::Carry + poll::Carry> Carry for C {
15 unsafe fn set_result(&mut self, result: &io::Result<usize>, extra: &crate::Extra) {
16 unsafe {
17 if extra.is_iour() {
18 iour::Carry::set_result(self, result, extra);
19 } else {
20 poll::Carry::set_result(self, result, extra);
21 }
22 }
23 }
24}