| 169 | } |
| 170 | |
| 171 | fn read_interfaces(reader: &mut BlockReader, _: &ClassFragment) -> Result<ClassFragment, Error> { |
| 172 | match reader.read_u16() { |
| 173 | Ok(ifs_len) => { |
| 174 | (0..ifs_len).fold(Ok(vec![]), |acc, _| { |
| 175 | match acc { |
| 176 | Ok(mut ifs) => match ClassReader::read_constant_pool_index(reader) { |
| 177 | Ok(interface) => { |
| 178 | ifs.push(interface); |
| 179 | Ok(ifs) |
| 180 | }, |
| 181 | Err(err) => Err(err) |
| 182 | }, |
| 183 | err@_ => err |
| 184 | } |
| 185 | }) |
| 186 | }, |
| 187 | Err(err) => Err(err) |
| 188 | }.map(|ifs| ClassFragment { |
| 189 | interfaces: Some(ifs), |
| 190 | ..Default::default() |
| 191 | }) |
| 192 | } |
| 193 | |
| 194 | fn read_fields(reader: &mut BlockReader, cf: &ClassFragment) -> Result<ClassFragment, Error> { |
| 195 | match reader.read_u16() { |