(&self, header: &[u8])
| 112 | } |
| 113 | |
| 114 | fn is_valid_header(&self, header: &[u8]) -> Result<bool, Error> { |
| 115 | let mut builder = self.reader_builder(); |
| 116 | |
| 117 | // Let rust-csv parse the headers in this case, we don't need to preserve order just to check it's valid. |
| 118 | builder.has_headers(true); |
| 119 | |
| 120 | let mut reader = builder.from_reader(header); |
| 121 | let has_row: Option<Result<HashMap<String, String>, _>> = reader.deserialize().next(); |
| 122 | if let Some(row) = has_row { |
| 123 | return Ok(row.is_ok()); |
| 124 | } |
| 125 | |
| 126 | Ok(false) |
| 127 | } |
| 128 | |
| 129 | fn parse(&self, input: &mut dyn Read) -> Result<serde_json::Value, Error> { |
| 130 | let mut reader = self.reader_builder().from_reader(input); |
no test coverage detected