1#[macro_export]
14macro_rules! bytecodec_try_encode {
15 ($encoder:expr, $offset:expr, $buf:expr, $eos:expr) => {
16 if !$encoder.is_idle() {
17 $offset += track!($encoder.encode(&mut $buf[$offset..], $eos))?;
18 if !$encoder.is_idle() {
19 return Ok($offset);
20 }
21 }
22 };
23 ($encoder:expr, $offset:expr, $buf:expr, $eos:expr, $($track_arg:tt)*) => {
24 if !$encoder.is_idle() {
25 $offset += track!($encoder.encode(&mut $buf[$offset..], $eos), $($track_arg)*)?;
26 if !$encoder.is_idle() {
27 return Ok($offset);
28 }
29 }
30 };
31 ($encoder:expr, $offset:expr, $buf:expr, $eos:expr; $($track_arg:tt)*) => {
32 if !$encoder.is_idle() {
33 $offset += track!($encoder.encode(&mut $buf[$offset..], $eos); $($track_arg)*)?;
34 if !$encoder.is_idle() {
35 return Ok($offset);
36 }
37 }
38 };
39}
40
41#[macro_export]
54macro_rules! bytecodec_try_decode {
55 ($decoder:expr, $offset:expr, $buf:expr, $eos:expr) => {
56 if !$decoder.is_idle() {
57 $offset += track!($decoder.decode(&$buf[$offset..], $eos))?;
58 if !$decoder.is_idle() {
59 return Ok($offset);
60 }
61 }
62 };
63 ($decoder:expr, $offset:expr, $buf:expr, $eos:expr, $($track_arg:tt)*) => {
64 if !$decoder.is_idle() {
65 $offset += track!($decoder.decode(&$buf[$offset..], $eos), $($track_arg)*)?;
66 if !$decoder.is_idle() {
67 return Ok($offset);
68 }
69 }
70 };
71 ($decoder:expr, $offset:expr, $buf:expr, $eos:expr; $($track_arg:tt)*) => {
72 if !$decoder.is_idle() {
73 $offset += track!($decoder.decode(&$buf[$offset..], $eos); $($track_arg)*)?;
74 if !$decoder.is_idle() {
75 return Ok($offset);
76 }
77 }
78 };
79}