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(())
})?
.finish()?;
Implementations
sourceimpl 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>
sourceimpl ClassWriter<AccessFlags>
impl ClassWriter<AccessFlags>
pub fn access_flags(
self,
flags: AccessFlags
) -> Result<ClassWriter<ThisClass>, EncodeError>
sourceimpl ClassWriter<ThisClass>
impl ClassWriter<ThisClass>
pub fn this_class<I>(
self,
name: I
) -> Result<ClassWriter<SuperClass>, EncodeError> where
I: Insertable<Class>,
sourceimpl 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>
sourceimpl ClassWriter<Interfaces>
impl ClassWriter<Interfaces>
pub fn interfaces<F>(self, f: F) -> Result<ClassWriter<Fields>, EncodeError> where
F: FnOnce(&mut ManyWriter<InterfaceWriter<Start>, u16>) -> Result<(), EncodeError>,
sourceimpl ClassWriter<Fields>
impl ClassWriter<Fields>
pub fn fields<F>(self, f: F) -> Result<ClassWriter<Methods>, EncodeError> where
F: FnOnce(&mut ManyWriter<FieldWriter<AccessFlags>, u16>) -> Result<(), EncodeError>,
sourceimpl ClassWriter<Methods>
impl ClassWriter<Methods>
pub fn methods<F>(self, f: F) -> Result<ClassWriter<Attributes>, EncodeError> where
F: FnOnce(&mut ManyWriter<MethodWriter<AccessFlags>, u16>) -> Result<(), EncodeError>,
sourceimpl 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>,
sourceimpl ClassWriter<End>
impl ClassWriter<End>
Trait Implementations
sourceimpl<State: Clone + State> Clone for ClassWriter<State>
impl<State: Clone + State> Clone for ClassWriter<State>
sourcefn clone(&self) -> ClassWriter<State>
fn clone(&self) -> ClassWriter<State>
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl<State: State> Debug for ClassWriter<State>
impl<State: State> Debug for ClassWriter<State>
sourceimpl Default for ClassWriter<Start>
impl Default for ClassWriter<Start>
sourcefn default() -> ClassWriter<Start>
fn default() -> ClassWriter<Start>
Returns the “default value” for a type. Read more
Auto Trait Implementations
impl<State> RefUnwindSafe for ClassWriter<State> where
State: RefUnwindSafe,
impl<State> Send for ClassWriter<State> where
State: Send,
impl<State> Sync for ClassWriter<State> where
State: Sync,
impl<State> Unpin for ClassWriter<State> where
State: Unpin,
impl<State> UnwindSafe for ClassWriter<State> where
State: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
🔬 This is a nightly-only experimental API. (
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more