Safe Haskell | None |
---|---|
Language | Haskell2010 |
- readClassFile :: ByteString -> Either ClassFileError (ClassFile High)
- writeClassFile :: ClassFile High -> ByteString
- writeClassFile' :: ConstantPool Low -> ClassFile High -> ByteString
- decodeClassFile :: ByteString -> Either ClassFileError (ClassFile Low)
- encodeClassFile :: ClassFile Low -> ByteString
- evolveClassFile :: ClassFile Low -> Either ClassFileError (ClassFile High)
- devolveClassFile :: ClassFile High -> ClassFile Low
- devolveClassFile' :: ConstantPool Low -> ClassFile High -> ClassFile Low
- data Evolve a
- data ClassFileError
- runEvolve :: ConstantPool High -> Evolve a -> Either ClassFileError a
- bootstrapConstantPool :: ConstantPool Low -> Either ClassFileError (ConstantPool High)
- data ConstantPoolBuilder a
- runConstantPoolBuilder :: ConstantPoolBuilder a -> CPBuilder -> (a, CPBuilder)
- data CPBuilder = CPBuilder {}
- builderFromConstantPool :: ConstantPool Low -> CPBuilder
- cpbEmpty :: CPBuilder
Documentation
writeClassFile :: ClassFile High -> ByteString Source #
writeClassFile' :: ConstantPool Low -> ClassFile High -> ByteString Source #
Finer granularity commands
decodeClassFile :: ByteString -> Either ClassFileError (ClassFile Low) Source #
Decode a class file from a lazy ByteString
. Ensures that the lazy
bytestring is read to EOF, and thereby closing any open files.
encodeClassFile :: ClassFile Low -> ByteString Source #
Create a lazy byte string from a class file
evolveClassFile :: ClassFile Low -> Either ClassFileError (ClassFile High) Source #
Changed the stage from Index to Deref
devolveClassFile :: ClassFile High -> ClassFile Low Source #
Devolve a ClassFile from High to Low. This might make the ClassFile
contain
invalid attributes, since we can't read all attributes. If this this is a problem
see devolveClassFile'
.
devolveClassFile' :: ConstantPool Low -> ClassFile High -> ClassFile Low Source #
Evolve
data ClassFileError Source #
An error while reading a class file is represented using this data structure
runEvolve :: ConstantPool High -> Evolve a -> Either ClassFileError a Source #
bootstrapConstantPool :: ConstantPool Low -> Either ClassFileError (ConstantPool High) Source #
Untie the constant pool, this requires a special operation as the constant pool might reference itself.
Builder
data ConstantPoolBuilder a Source #
runConstantPoolBuilder :: ConstantPoolBuilder a -> CPBuilder -> (a, CPBuilder) Source #