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

Method read_element_value

src/bytecode/io/reader.rs:818–842  ·  view source on GitHub ↗
(reader: &mut BlockReader)

Source from the content-addressed store, hash-verified

816 }
817
818 fn read_element_value(reader: &mut BlockReader) -> ElementValue {
819 let tag = reader.get_u8();
820
821 match tag {
822 66 /* B */ => ElementValue::ConstantValue(tag, ConstantPoolIndex::new(reader.get_u16() as usize)),
823 67 /* C */ => ElementValue::ConstantValue(tag, ConstantPoolIndex::new(reader.get_u16() as usize)),
824 68 /* D */ => ElementValue::ConstantValue(tag, ConstantPoolIndex::new(reader.get_u16() as usize)),
825 70 /* F */ => ElementValue::ConstantValue(tag, ConstantPoolIndex::new(reader.get_u16() as usize)),
826 73 /* I */ => ElementValue::ConstantValue(tag, ConstantPoolIndex::new(reader.get_u16() as usize)),
827 74 /* J */ => ElementValue::ConstantValue(tag, ConstantPoolIndex::new(reader.get_u16() as usize)),
828 83 /* S */ => ElementValue::ConstantValue(tag, ConstantPoolIndex::new(reader.get_u16() as usize)),
829 90 /* Z */ => ElementValue::ConstantValue(tag, ConstantPoolIndex::new(reader.get_u16() as usize)),
830 115 /* s */ => ElementValue::ConstantValue(tag, ConstantPoolIndex::new(reader.get_u16() as usize)),
831 101 /* e */ => ElementValue::Enum {
832 type_name_index: ConstantPoolIndex::new(reader.get_u16() as usize),
833 const_name_index: ConstantPoolIndex::new(reader.get_u16() as usize) },
834 99 /* c */ => ElementValue::ClassInfo(ConstantPoolIndex::new(reader.get_u16() as usize)),
835 64 /* @ */ => ElementValue::Annotation(ClassReader::read_annotation(reader)),
836 91 /* [ */ => ElementValue::Array({
837 let n = reader.get_u16();
838 (0..n).map(|_| ClassReader::read_element_value(reader)).collect()
839 }),
840 _ => ElementValue::ConstantValue(tag, ConstantPoolIndex::new(0)) // TODO this deserves a better error handling
841 }
842 }
843
844 fn read_constant_pool_index(reader: &mut BlockReader) -> Result<ConstantPoolIndex, Error> {
845 match reader.read_u16() {

Callers

nothing calls this directly

Calls 3

AnnotationClass · 0.85
get_u8Method · 0.80
get_u16Method · 0.80

Tested by

no test coverage detected