variable_len_reader/synchronous/
writer.rs1use crate::synchronous::VariableWritable;
2
3#[allow(unused_macros)]
6macro_rules! write_size_ap {
7 (f $feature: meta, $primitive: ty, $func: ident, $internal: ty, $write_internal: ident) => {
8 #[$feature]
9 #[cfg_attr(docsrs, doc($feature))]
10 #[inline]
11 fn $func(&mut self, value: $primitive) -> ::core::result::Result<(), Self::Error> {
12 self.$write_internal(value as $internal)
13 }
14 };
15}
16
17include!("write_bools.rs");
18
19include!("write_raw.rs");
20include!("write_raw_size.rs");
21
22include!("write_varint.rs");
23include!("write_varint_size.rs");
24include!("write_varint_long.rs");
25include!("write_varint_long_size.rs");
26
27include!("write_signed_varint.rs");
28include!("write_signed_varint_size.rs");
29include!("write_signed_varint_long.rs");
30include!("write_signed_varint_long_size.rs");
31
32include!("write_float_varint.rs");
33include!("write_float_varint_long.rs");
34
35pub trait VariableWriter: VariableWritable {
36 #[inline]
37 fn write_bool(&mut self, b: bool) -> Result<(), Self::Error> {
38 self.write_single(if b { 1 } else { 0 })
39 }
40
41 define_write_bools!();
42
43 define_write_raw!();
44 define_write_raw_size!();
45
46 define_write_varint!();
47 define_write_varint_size!();
48 define_write_varint_long!();
49 define_write_varint_long_size!();
50
51 define_write_signed_varint!();
52 define_write_signed_varint_size!();
53 define_write_signed_varint_long!();
54 define_write_signed_varint_long_size!();
55
56 define_write_float_varint!();
57 define_write_float_varint_long!();
58
59 #[cfg(feature = "sync_u8_vec")]
60 #[cfg_attr(docsrs, doc(cfg(feature = "sync_u8_vec")))]
61 #[inline]
62 fn write_u8_vec(&mut self, message: &[u8]) -> Result<(), Self::Error> {
63 self.write_usize_varint_ap(message.len())?;
64 self.write_more(message)?;
65 Ok(())
66 }
67
68 #[cfg(feature = "sync_string")]
69 #[cfg_attr(docsrs, doc(cfg(feature = "sync_string")))]
70 #[inline]
71 fn write_string(&mut self, message: &str) -> Result<(), Self::Error> {
72 self.write_u8_vec(message.as_bytes())
73 }
74}