[READ-ONLY] Mirror of https://github.com/probablykasper/csv-pipeline.
0

Configure Feed

Select the types of activity you want to include in your feed.

Fix transform headers

Kasper (Jan 11, 2023, 1:18 PM +0100) 9a412970 5defd4d0

+14 -10
+14 -10
src/pipeline.rs
··· 187 187 self 188 188 } 189 189 190 - /// Group and reduce rows 190 + /// Group and reduce rows into. Panics if the transform results in duplicate column names. 191 191 /// 192 192 /// ## Example 193 193 /// ··· 207 207 /// 208 208 /// assert_eq!(csv, "X,B\n1,2\n"); 209 209 /// ``` 210 - pub fn transform_into<T>(mut self, mut get_transformers: T) -> Self 210 + pub fn transform_into<T>(self, mut get_transformers: T) -> Self 211 211 where 212 212 T: FnMut() -> Vec<Box<dyn Transform>> + 'a, 213 213 { 214 - self.iterator = Box::new(TransformInto { 215 - iterator: self.iterator, 216 - groups: BTreeMap::new(), 217 - hashers: get_transformers(), 218 - get_transformers, 219 - headers: self.headers.clone(), 220 - }); 221 - self 214 + let hashers = get_transformers(); 215 + let names: Vec<_> = hashers.iter().map(|hasher| hasher.name()).collect(); 216 + Pipeline { 217 + headers: Headers::from_row(Row::from(names)).unwrap(), 218 + iterator: Box::new(TransformInto { 219 + iterator: self.iterator, 220 + groups: BTreeMap::new(), 221 + hashers: get_transformers(), 222 + get_transformers, 223 + headers: self.headers.clone(), 224 + }), 225 + } 222 226 } 223 227 224 228 /// Write to the specified [`Target`].