1 #![macro_use]
2 
3 //! Contains several macros used in this crate.
4 
5 macro_rules! gen_setter {
6     ($(#[$comments:meta])* $field:ident : into $t:ty) => {
7 
8             $(#[$comments])*
9             ///
10             /// <small>See [`ParserConfig`][crate::ParserConfig] fields docs for details</small>
11             #[inline]
12             pub fn $field<T: Into<$t>>(mut self, value: T) -> Self {
13                 self.$field = value.into();
14                 self
15             }
16     };
17     ($(#[$comments:meta])* $field:ident : val $t:ty) => {
18             $(#[$comments])*
19             ///
20             /// <small>See [`ParserConfig`][crate::ParserConfig] fields docs for details</small>
21             #[inline]
22             #[must_use] pub fn $field(mut self, value: $t) -> Self {
23                 self.$field = value;
24                 self
25             }
26     };
27     ($(#[$comments:meta])* $field:ident : delegate $t:ty) => {
28             $(#[$comments])*
29             ///
30             /// <small>See [`ParserConfig`][crate::ParserConfig] fields docs for details</small>
31             #[inline]
32             #[must_use] pub fn $field(mut self, value: $t) -> Self {
33                 self.c.$field = value;
34                 self
35             }
36     };
37     ($(#[$comments:meta])* $field:ident : c2 $t:ty) => {
38             $(#[$comments])*
39             ///
40             /// <small>See [`ParserConfig2`][crate::reader::ParserConfig2] fields docs for details</small>
41             #[inline]
42             #[must_use]
43             pub fn $field(self, value: $t) -> ParserConfig2 {
44                 ParserConfig2 {
45                     c: self,
46                     ..Default::default()
47                 }
48                 .$field(value)
49             }
50     };
51 }
52 
53 macro_rules! gen_setters {
54     ($target:ident, $($(#[$comments:meta])* $field:ident : $k:tt $tpe:ty),+) => (
55         impl $target {$(
56 
57             gen_setter! { $(#[$comments])* $field : $k $tpe }
58         )+
59     })
60 }
61