pub trait Generator {
// Required methods
fn begin<R>(
&mut self,
runtime_binder: &mut R,
name: &str,
) -> Result<(), Error>
where R: RuntimeBinder;
fn end<R>(
&mut self,
runtime_binder: &mut R,
name: &str,
) -> Result<(), Error>
where R: RuntimeBinder;
fn generate_fn<R>(
&mut self,
runtime_binder: &mut R,
fn: &Function,
) -> Result<(), Error>
where R: RuntimeBinder;
fn generate_deploy<R>(
&mut self,
runtime_binder: &mut R,
contructor: &Constructor,
deploy_bytes: &str,
) -> Result<(), Error>
where R: RuntimeBinder;
fn generate_event<R>(
&mut self,
runtime_binder: &mut R,
event: &Event,
) -> Result<(), Error>
where R: RuntimeBinder;
fn generate_error<R>(
&mut self,
runtime_binder: &mut R,
error: &Error,
) -> Result<(), Error>
where R: RuntimeBinder;
fn finalize<R>(self, runtime_binder: &mut R) -> Result<Vec<Contract>, Error>
where R: RuntimeBinder;
}
Expand description
Programming language code generator supported by Ethbind
.
The implementation must support multi-round generation process.
Required Methods§
Sourcefn begin<R>(&mut self, runtime_binder: &mut R, name: &str) -> Result<(), Error>where
R: RuntimeBinder,
fn begin<R>(&mut self, runtime_binder: &mut R, name: &str) -> Result<(), Error>where
R: RuntimeBinder,
Generatable
or Executor
call this fn to start a new contract generation round.
Sourcefn end<R>(&mut self, runtime_binder: &mut R, name: &str) -> Result<(), Error>where
R: RuntimeBinder,
fn end<R>(&mut self, runtime_binder: &mut R, name: &str) -> Result<(), Error>where
R: RuntimeBinder,
Close current generation contract round.
Sourcefn generate_fn<R>(
&mut self,
runtime_binder: &mut R,
fn: &Function,
) -> Result<(), Error>where
R: RuntimeBinder,
fn generate_fn<R>(
&mut self,
runtime_binder: &mut R,
fn: &Function,
) -> Result<(), Error>where
R: RuntimeBinder,
Generate contract method ,call this fn after call begin
at least once.
Sourcefn generate_deploy<R>(
&mut self,
runtime_binder: &mut R,
contructor: &Constructor,
deploy_bytes: &str,
) -> Result<(), Error>where
R: RuntimeBinder,
fn generate_deploy<R>(
&mut self,
runtime_binder: &mut R,
contructor: &Constructor,
deploy_bytes: &str,
) -> Result<(), Error>where
R: RuntimeBinder,
Generate contract deploy method ,call this fn after call begin
at least once.
Sourcefn generate_event<R>(
&mut self,
runtime_binder: &mut R,
event: &Event,
) -> Result<(), Error>where
R: RuntimeBinder,
fn generate_event<R>(
&mut self,
runtime_binder: &mut R,
event: &Event,
) -> Result<(), Error>where
R: RuntimeBinder,
Generate event handle interface ,call this fn after call begin
at least once.
Sourcefn generate_error<R>(
&mut self,
runtime_binder: &mut R,
error: &Error,
) -> Result<(), Error>where
R: RuntimeBinder,
fn generate_error<R>(
&mut self,
runtime_binder: &mut R,
error: &Error,
) -> Result<(), Error>where
R: RuntimeBinder,
Generate error handle interface ,call this fn after call begin
at least once.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.