@@ -8,7 +8,7 @@ use headers::OneOrMore;
8
8
use name:: Name ;
9
9
10
10
mod error;
11
- pub ( crate ) mod headers;
11
+ pub mod headers;
12
12
pub mod multiple;
13
13
pub ( crate ) mod name;
14
14
@@ -88,18 +88,19 @@ impl<H: HeaderParse> DecodeValues for H {
88
88
}
89
89
}
90
90
91
+ #[ macro_export]
91
92
macro_rules! csv_header {
92
93
( $( #[ $meta: meta] ) * $struct_name: ident, $wrapping: ty, $header_name: expr) => {
93
94
$( #[ $meta] ) *
94
95
#[ derive( Debug , Clone , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
95
96
pub struct $struct_name( pub $wrapping) ;
96
97
97
- impl ConstNamed for $struct_name {
98
+ impl $crate :: header :: ConstNamed for $struct_name {
98
99
const NAME : Name = $header_name;
99
100
}
100
101
101
- impl HeaderParse for $struct_name {
102
- fn parse<' i>( ctx: ParseCtx , i: & ' i str ) -> Result <( & ' i str , Self ) > {
102
+ impl $crate :: header :: HeaderParse for $struct_name {
103
+ fn parse<' i>( ctx: $crate :: parse :: ParseCtx , i: & ' i str ) -> anyhow :: Result <( & ' i str , Self ) > {
103
104
if let Some ( comma_idx) = i. find( ',' ) {
104
105
Ok ( (
105
106
& i[ comma_idx..] ,
@@ -111,48 +112,49 @@ macro_rules! csv_header {
111
112
}
112
113
}
113
114
114
- impl ExtendValues for $struct_name {
115
- fn extend_values( & self , _: PrintCtx <' _>, values: & mut OneOrMore ) {
115
+ impl $crate :: header :: ExtendValues for $struct_name {
116
+ fn extend_values( & self , _: $crate :: print :: PrintCtx <' _>, values: & mut $crate :: header :: headers :: OneOrMore ) {
116
117
let value = match values {
117
- OneOrMore :: One ( value) => value,
118
- OneOrMore :: More ( values) => {
118
+ $crate :: header :: headers :: OneOrMore :: One ( value) => value,
119
+ $crate :: header :: headers :: OneOrMore :: More ( values) => {
119
120
values. last_mut( ) . expect( "empty OneOrMore::More variant" )
120
121
}
121
122
} ;
122
123
123
124
* value = format!( "{}, {}" , value, self . 0 ) . into( ) ;
124
125
}
125
126
126
- fn create_values( & self , _: PrintCtx <' _>) -> OneOrMore {
127
- OneOrMore :: One ( self . 0 . to_string( ) . into( ) )
127
+ fn create_values( & self , _: $crate :: print :: PrintCtx <' _>) -> $crate :: header :: headers :: OneOrMore {
128
+ $crate :: header :: headers :: OneOrMore :: One ( self . 0 . to_string( ) . into( ) )
128
129
}
129
130
}
130
131
} ;
131
132
}
132
133
134
+ #[ macro_export]
133
135
macro_rules! from_str_header {
134
136
( $( #[ $meta: meta] ) * $struct_name: ident, $header_name: expr, $from_str_ty: ty) => {
135
137
$( #[ $meta] ) *
136
138
#[ derive( Debug , Clone , PartialEq , Eq , PartialOrd , Ord , Hash ) ]
137
139
pub struct $struct_name( pub $from_str_ty) ;
138
140
139
- impl ConstNamed for $struct_name {
141
+ impl $crate :: header :: ConstNamed for $struct_name {
140
142
const NAME : Name = $header_name;
141
143
}
142
144
143
- impl HeaderParse for $struct_name {
144
- fn parse<' i>( _: ParseCtx , i: & ' i str ) -> Result <( & ' i str , Self ) > {
145
+ impl $crate :: header :: HeaderParse for $struct_name {
146
+ fn parse<' i>( _: $crate :: parse :: ParseCtx , i: & ' i str ) -> anyhow :: Result <( & ' i str , Self ) > {
145
147
Ok ( ( "" , Self ( i. trim( ) . parse( ) ?) ) )
146
148
}
147
149
}
148
150
149
- impl ExtendValues for $struct_name {
150
- fn extend_values( & self , ctx: PrintCtx <' _>, values: & mut OneOrMore ) {
151
+ impl $crate :: header :: ExtendValues for $struct_name {
152
+ fn extend_values( & self , ctx: $crate :: print :: PrintCtx <' _>, values: & mut $crate :: header :: headers :: OneOrMore ) {
151
153
* values = self . create_values( ctx)
152
154
}
153
155
154
- fn create_values( & self , _: PrintCtx <' _>) -> OneOrMore {
155
- OneOrMore :: One ( self . 0 . to_string( ) . into( ) )
156
+ fn create_values( & self , _: $crate :: print :: PrintCtx <' _>) -> $crate :: header :: headers :: OneOrMore {
157
+ $crate :: header :: headers :: OneOrMore :: One ( self . 0 . to_string( ) . into( ) )
156
158
}
157
159
}
158
160
0 commit comments