Struct tectonic::driver::ProcessingSession
source · Expand description
The ProcessingSession struct runs the whole show when we’re actually
processing a file. It understands, for example, the need to re-run the TeX
engine if the .aux
file changed.
Fields§
§io: IoSetup
This contains the full I/O setup of the processing session. After running the session, you can inspect this to see what I/O was produced. (For example, the memory layer might contain some files that were produced by the TeX engine but not actually written to disk.)
events: IoEvents
This contains all the I/O events that occurred while processing.
Implementations§
source§impl ProcessingSession
impl ProcessingSession
sourcepub fn run<S: StatusBackend>(&mut self, status: &mut S) -> Result<()>
pub fn run<S: StatusBackend>(&mut self, status: &mut S) -> Result<()>
Runs the session, generating the desired outputs.
What this does depends on which PassSetting
you asked for. The most common choice is
PassSetting::Default
, in which case this method does the following:
- if a
.fmt
file does not yet exist, generate one and cache it - run the TeX engine once
- run BibTeX, if it seems to be required
- repeat the last two steps as often as needed
- write the output files to disk, including a Makefile if it was requested.
sourcepub fn into_file_data(self) -> HashMap<OsString, Vec<u8>>
pub fn into_file_data(self) -> HashMap<OsString, Vec<u8>>
Consume this session and return the current set of files in memory.
This convenience function tries to help with the annoyances of getting access to the in-memory file data after the engine has been run.
Panics
This will panic if you there are multiple strong references to the
files
map. This should only happen if you create and keep a clone of
the Rc<>
wrapping it before calling this function.