classfile-parser 0.3.8

A parser for Java Class files written in rust
Documentation
use nom::{multi::count, number::complete::be_u16, IResult};

use attribute_info::attribute_parser;

use method_info::{MethodAccessFlags, MethodInfo};

pub fn method_parser(input: &[u8]) -> IResult<&[u8], MethodInfo> {
    let (input, access_flags) = be_u16(input)?;
    let (input, name_index) = be_u16(input)?;
    let (input, descriptor_index) = be_u16(input)?;
    let (input, attributes_count) = be_u16(input)?;
    let (input, attributes) = count(attribute_parser, attributes_count as usize)(input)?;
    Ok((
        input,
        MethodInfo {
            access_flags: MethodAccessFlags::from_bits_truncate(access_flags),
            name_index,
            descriptor_index,
            attributes_count,
            attributes,
        },
    ))
}