MCPcopy Create free account
hub / github.com/cretz/stackparam / write_element_value

Method write_element_value

src/bytecode/io/writer.rs:307–315  ·  view source on GitHub ↗
(&mut self, element_value: &ElementValue, cp: &ConstantPool)

Source from the content-addressed store, hash-verified

305 }
306
307 fn write_element_value(&mut self, element_value: &ElementValue, cp: &ConstantPool) -> Result<usize, Error> {
308 match element_value {
309 &ElementValue::ConstantValue(tag, ref idx) => self.write_u8(tag).and(self.write_u16(idx.idx as u16)),
310 &ElementValue::Enum { ref type_name_index, ref const_name_index } => self.write_u8(101).and(self.write_u16(type_name_index.idx as u16)).and(self.write_u16(const_name_index.idx as u16)),
311 &ElementValue::ClassInfo(ref idx) => self.write_u8(99).and(self.write_u16(idx.idx as u16)),
312 &ElementValue::Annotation(ref annotation) => self.write_u8(64).and(self.write_annotation(annotation, cp)),
313 &ElementValue::Array(ref table) => self.write_u8(91).and(self.write_u16(table.len() as u16)).and(table.iter().fold(Ok(0), |_, x| { self.write_element_value(x, cp) }))
314 }
315 }
316
317 fn write_element_value_pair(&mut self, pair: &ElementValuePair, cp: &ConstantPool) -> Result<usize, Error> {
318 self.write_u16(pair.element_name_index.idx as u16).and(self.write_element_value(&pair.value, cp))

Callers 2

write_attributeMethod · 0.80

Calls 4

write_u8Method · 0.80
write_u16Method · 0.80
write_annotationMethod · 0.80
lenMethod · 0.80

Tested by

no test coverage detected