Struct noak::writer::ClassWriter
source · pub struct ClassWriter<State: State> { /* private fields */ }
Expand description
A class writer can build a class.
§Examples
use noak::writer::ClassWriter;
use noak::{AccessFlags, Version};
let buf = ClassWriter::new()
.version(Version::latest())?
.access_flags(AccessFlags::PUBLIC | AccessFlags::SUPER)?
.this_class("com/example/Example")?
.super_class("java/lang/Object")?
.interfaces(|_interfaces| Ok(()))?
.fields(|_fields| Ok(()))?
.methods(|_methods| Ok(()))?
.attributes(|attributes| {
attributes.begin(|attribute| attribute.source_file("Example.java"))?;
Ok(())
})?
.into_bytes()?;
Implementations§
source§impl ClassWriter<Start>
impl ClassWriter<Start>
sourcepub fn new() -> ClassWriter<Start>
pub fn new() -> ClassWriter<Start>
Creates a new class writer with a sensitive initial capacity.
pub fn version( self, version: Version ) -> Result<ClassWriter<AccessFlags>, EncodeError>
source§impl ClassWriter<AccessFlags>
impl ClassWriter<AccessFlags>
pub fn access_flags( self, flags: AccessFlags ) -> Result<ClassWriter<ThisClass>, EncodeError>
source§impl ClassWriter<ThisClass>
impl ClassWriter<ThisClass>
pub fn this_class<I>(
self,
name: I
) -> Result<ClassWriter<SuperClass>, EncodeError>where
I: Insertable<Class>,
source§impl ClassWriter<SuperClass>
impl ClassWriter<SuperClass>
pub fn super_class<I>(
self,
name: I
) -> Result<ClassWriter<Interfaces>, EncodeError>where
I: Insertable<Class>,
pub fn no_super_class(self) -> Result<ClassWriter<Interfaces>, EncodeError>
source§impl ClassWriter<Interfaces>
impl ClassWriter<Interfaces>
pub fn interfaces<F>(self, f: F) -> Result<ClassWriter<Fields>, EncodeError>
source§impl ClassWriter<Fields>
impl ClassWriter<Fields>
pub fn fields<F>(self, f: F) -> Result<ClassWriter<Methods>, EncodeError>
source§impl ClassWriter<Methods>
impl ClassWriter<Methods>
pub fn methods<F>(self, f: F) -> Result<ClassWriter<Attributes>, EncodeError>
source§impl ClassWriter<Attributes>
impl ClassWriter<Attributes>
pub fn attributes<F>(self, f: F) -> Result<ClassWriter<End>, EncodeError>where
F: FnOnce(&mut ManyWriter<AttributeWriter<ClassWriter<Attributes>, Start>, u16>) -> Result<(), EncodeError>,
source§impl ClassWriter<End>
impl ClassWriter<End>
pub fn into_bytes(self) -> Result<Vec<u8>, EncodeError>
pub fn write_bytes_to<W: Write>(&self, writer: &mut W) -> Result<()>
Trait Implementations§
source§impl<State: Clone + State> Clone for ClassWriter<State>
impl<State: Clone + State> Clone for ClassWriter<State>
source§fn clone(&self) -> ClassWriter<State>
fn clone(&self) -> ClassWriter<State>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<State: State> Debug for ClassWriter<State>
impl<State: State> Debug for ClassWriter<State>
source§impl Default for ClassWriter<Start>
impl Default for ClassWriter<Start>
source§fn default() -> ClassWriter<Start>
fn default() -> ClassWriter<Start>
Returns the “default value” for a type. Read more
source§impl<State: State> EncoderContext for ClassWriter<State>
impl<State: State> EncoderContext for ClassWriter<State>
fn insert_constant<I: Into<Item>>( &mut self, item: I ) -> Result<Index<I>, EncodeError>
Auto Trait Implementations§
impl<State> Freeze for ClassWriter<State>where
State: Sealed,
impl<State> RefUnwindSafe for ClassWriter<State>where
State: Sealed + RefUnwindSafe,
impl<State> Send for ClassWriter<State>where
State: Sealed + Send,
impl<State> Sync for ClassWriter<State>where
State: Sealed + Sync,
impl<State> Unpin for ClassWriter<State>where
State: Sealed + Unpin,
impl<State> UnwindSafe for ClassWriter<State>where
State: Sealed + UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more