javabc 0.1.2

Java bytecode manipulation library
Documentation
pub use self::class_file::ClassFile;
pub use self::constant::{Constant, ConstantIndex};
pub use self::method::Method;
pub use self::field::Field;
pub use self::interface::Interface;
pub use self::attribute::Attribute;
pub use self::flags::AccessFlags;
pub use self::array::{Array, OneBasedArray};

pub mod class_file;
pub mod constant;
pub mod method;
pub mod field;
pub mod interface;
pub mod attribute;
pub mod flags;
pub mod array;

use std::io;

use byteorder::{ReadBytesExt, WriteBytesExt};

pub trait Serializable : Sized
{
    fn read(read: &mut io::Read) -> Result<Self, ::Error>;
    fn write(&self, write: &mut io::Write) -> Result<(), ::Error>;
}

impl Serializable for u8
{
    fn read(read: &mut io::Read) -> Result<Self, ::Error> {
        Ok(read.read_u8()?)
    }

    fn write(&self, write: &mut io::Write) -> Result<(), ::Error> {
        write.write_u8(*self)?;
        Ok(())
    }
}