Skip to main content

BundleCache

Struct BundleCache 

Source
pub struct BundleCache<'this, T> { /* private fields */ }
Expand description

A cache wrapper for another bundle.

This bundle implementation is the key to Tectonic’s ability to download TeX support files on the fly. This is usually used to wrap some kind of network- based bundle, but can be used with any struct that implements Bundle.

The caching scheme here is designed so that a document build may avoid touching the network altogether if no new files need to be downloaded.

Implementations§

Source§

impl<'this, T: FileIndex<'this>> BundleCache<'this, T>

Source

pub fn new( bundle: Box<dyn CachableBundle<'this, T>>, only_cached: bool, cache_root: Option<PathBuf>, ) -> Result<Self>

Make a new filesystem-backed cache from bundle.

This method will fail if we can’t connect to the bundle AND we don’t already have it in our cache. Other than that, this method does not require network access.

Trait Implementations§

Source§

impl<'this, T: FileIndex<'this>> Bundle for BundleCache<'this, T>

Source§

fn get_digest(&mut self) -> Result<DigestData>

Get a cryptographic digest summarizing this bundle’s contents, which summarizes the exact contents of every file in the bundle.
Source§

fn all_files(&self) -> Vec<String>

Iterate over all file paths in this bundle. This is used for the bundle search command
Source§

impl<'this, T: FileIndex<'this>> IoProvider for BundleCache<'this, T>

Source§

fn input_open_name( &mut self, name: &str, status: &mut dyn StatusBackend, ) -> OpenResult<InputHandle>

Open the named file for input.
Source§

fn output_open_name(&mut self, _name: &str) -> OpenResult<OutputHandle>

Open the named file for output.
Source§

fn output_open_stdout(&mut self) -> OpenResult<OutputHandle>

Open the standard output stream.
Source§

fn input_open_name_with_abspath( &mut self, name: &str, status: &mut dyn StatusBackend, ) -> OpenResult<(InputHandle, Option<PathBuf>)>

Open the named file for input and return filesystem path information. Read more
Source§

fn input_open_primary( &mut self, _status: &mut dyn StatusBackend, ) -> OpenResult<InputHandle>

Open the “primary” input file, which in the context of TeX is the main input that it’s given. When the build is being done using the filesystem and the input is a file on the filesystem, this function isn’t necesssarily that important, but those conditions don’t always hold.
Source§

fn input_open_primary_with_abspath( &mut self, status: &mut dyn StatusBackend, ) -> OpenResult<(InputHandle, Option<PathBuf>)>

Open the primary input and return filesystem path information. Read more
Source§

fn input_open_format( &mut self, name: &str, status: &mut dyn StatusBackend, ) -> OpenResult<InputHandle>

Open a format file with the specified name. Format files have a specialized entry point because IOProviders may wish to handle them specially: namely, to munge the filename to one that includes the current version of the Tectonic engine, since the format contents depend sensitively on the engine internals.
Source§

fn write_format( &mut self, _name: &str, _data: &[u8], _status: &mut dyn StatusBackend, ) -> Result<(), Error>

Save an a format dump in some way that this provider may be able to recover in the future. This awkward interface is needed to write formats with their special munged file names.

Auto Trait Implementations§

§

impl<'this, T> !RefUnwindSafe for BundleCache<'this, T>

§

impl<'this, T> !Send for BundleCache<'this, T>

§

impl<'this, T> !Sync for BundleCache<'this, T>

§

impl<'this, T> !UnwindSafe for BundleCache<'this, T>

§

impl<'this, T> Freeze for BundleCache<'this, T>

§

impl<'this, T> Unpin for BundleCache<'this, T>

§

impl<'this, T> UnsafeUnpin for BundleCache<'this, T>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> AsIoProviderMut for T
where T: IoProvider,

Source§

fn as_ioprovider_mut(&mut self) -> &mut dyn IoProvider

Represent this value as an IoProvider trait object.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more