Struct rustc_driver::RunCompiler
source · pub struct RunCompiler<'a, 'b> {
pub(crate) at_args: &'a [String],
pub(crate) callbacks: &'b mut (dyn Callbacks + Send),
pub(crate) file_loader: Option<Box<dyn FileLoader + Send + Sync>>,
pub(crate) make_codegen_backend: Option<Box<dyn FnOnce(&Options) -> Box<dyn CodegenBackend> + Send>>,
}
Expand description
This is the primary entry point for rustc.
Fields§
§at_args: &'a [String]
§callbacks: &'b mut (dyn Callbacks + Send)
§file_loader: Option<Box<dyn FileLoader + Send + Sync>>
§make_codegen_backend: Option<Box<dyn FnOnce(&Options) -> Box<dyn CodegenBackend> + Send>>
Implementations§
source§impl<'a, 'b> RunCompiler<'a, 'b>
impl<'a, 'b> RunCompiler<'a, 'b>
pub fn new(
at_args: &'a [String],
callbacks: &'b mut (dyn Callbacks + Send)
) -> Self
sourcepub fn set_make_codegen_backend(
&mut self,
make_codegen_backend: Option<Box<dyn FnOnce(&Options) -> Box<dyn CodegenBackend> + Send>>
) -> &mut Self
pub fn set_make_codegen_backend(
&mut self,
make_codegen_backend: Option<Box<dyn FnOnce(&Options) -> Box<dyn CodegenBackend> + Send>>
) -> &mut Self
Set a custom codegen backend.
Has no uses within this repository, but is used by bjorn3 for “the hotswapping branch of cg_clif” for “setting the codegen backend from a custom driver where the custom codegen backend has arbitrary data.” (See #102759.)
sourcepub fn set_file_loader(
&mut self,
file_loader: Option<Box<dyn FileLoader + Send + Sync>>
) -> &mut Self
pub fn set_file_loader(
&mut self,
file_loader: Option<Box<dyn FileLoader + Send + Sync>>
) -> &mut Self
Load files from sources other than the file system.
Has no uses within this repository, but may be used in the future by bjorn3 for “hooking rust-analyzer’s VFS into rustc at some point for running rustc without having to save”. (See #102759.)
Auto Trait Implementations§
impl<'a, 'b> !RefUnwindSafe for RunCompiler<'a, 'b>
impl<'a, 'b> Send for RunCompiler<'a, 'b>
impl<'a, 'b> !Sync for RunCompiler<'a, 'b>
impl<'a, 'b> Unpin for RunCompiler<'a, 'b>
impl<'a, 'b> !UnwindSafe for RunCompiler<'a, 'b>
Blanket Implementations§
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 64 bytes