pub struct CmdRenderer { /* private fields */ }
Expand description
A generic renderer which will shell out to an arbitrary executable.
§Rendering Protocol
When the renderer’s render()
method is invoked, CmdRenderer
will spawn
the cmd
as a subprocess. The RenderContext
is passed to the subprocess
as a JSON string (using serde_json
).
Note: The command used doesn’t necessarily need to be a single executable (i.e.
/path/to/renderer
). Thecmd
string lets you pass in command line arguments, so there’s no reason why it couldn’t bepython /path/to/renderer --from mdbook --to epub
.
Anything the subprocess writes to stdin
or stdout
will be passed through
to the user. While this gives the renderer maximum flexibility to output
whatever it wants, to avoid spamming users it is recommended to avoid
unnecessary output.
To help choose the appropriate output level, the RUST_LOG
environment
variable will be passed through to the subprocess, if set.
If the subprocess wishes to indicate that rendering failed, it should exit with a non-zero return code.
Implementations§
Source§impl CmdRenderer
impl CmdRenderer
Sourcepub fn new(name: String, cmd: String) -> CmdRenderer
pub fn new(name: String, cmd: String) -> CmdRenderer
Create a new CmdRenderer
which will invoke the provided cmd
string.
Trait Implementations§
Source§impl Clone for CmdRenderer
impl Clone for CmdRenderer
Source§fn clone(&self) -> CmdRenderer
fn clone(&self) -> CmdRenderer
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more