Trait safer_ffi::headers::Definer [−][src]
pub trait Definer: __ { fn insert(&mut self, name: &str) -> bool; fn out(&mut self) -> &mut dyn Write; fn define_once(
&mut self,
name: &str,
write_typedef: &mut dyn FnMut(&mut dyn Definer) -> Result<()>
) -> Result<()> { ... } }
This is supported on crate feature
headers
only.Expand description
Helper for the generation of C headers.
Defining C headers requires two abstractions:
-
set-like lookup by name, to ensure each type is defined at most once;
-
a
Write
able “out stream”, where the headers should be written to.
This trait minimally combines both abstractions, and in exchange offers an
auto-implemented non-overridable
Definer::define_once
()
.
Required methods
Provided methods
fn define_once(
&mut self,
name: &str,
write_typedef: &mut dyn FnMut(&mut dyn Definer) -> Result<()>
) -> Result<()>
[src]
fn define_once(
&mut self,
name: &str,
write_typedef: &mut dyn FnMut(&mut dyn Definer) -> Result<()>
) -> Result<()>
[src]Convenience method to perform an .insert()
so
that if it succeeds (thus guaranteeing the call happens for the first
time), it calls write_typedef
on itself.
This method cannot be overriden.