pub trait ExtraBackendMethods:
CodegenBackend
+ WriteBackendMethods
+ Sized
+ Send
+ Sync
+ DynSend
+ DynSync {
// Required methods
fn codegen_allocator<'tcx>(
&self,
tcx: TyCtxt<'tcx>,
module_name: &str,
methods: &[AllocatorMethod],
) -> Self::Module;
fn compile_codegen_unit(
&self,
tcx: TyCtxt<'_>,
cgu_name: Symbol,
) -> (ModuleCodegen<Self::Module>, u64);
fn target_machine_factory(
&self,
sess: &Session,
opt_level: OptLevel,
target_features: &[String],
) -> TargetMachineFactoryFn<Self>;
// Provided methods
fn spawn_named_thread<F, T>(
_time_trace: bool,
name: String,
f: F,
) -> Result<JoinHandle<T>>
where F: FnOnce() -> T + Send + 'static,
T: Send + 'static { ... }
fn supports_parallel(&self) -> bool { ... }
}Required Methods§
fn codegen_allocator<'tcx>( &self, tcx: TyCtxt<'tcx>, module_name: &str, methods: &[AllocatorMethod], ) -> Self::Module
Sourcefn compile_codegen_unit(
&self,
tcx: TyCtxt<'_>,
cgu_name: Symbol,
) -> (ModuleCodegen<Self::Module>, u64)
fn compile_codegen_unit( &self, tcx: TyCtxt<'_>, cgu_name: Symbol, ) -> (ModuleCodegen<Self::Module>, u64)
This generates the codegen unit and returns it along with
a u64 giving an estimate of the unit’s processing cost.
fn target_machine_factory( &self, sess: &Session, opt_level: OptLevel, target_features: &[String], ) -> TargetMachineFactoryFn<Self>
Provided Methods§
fn spawn_named_thread<F, T>( _time_trace: bool, name: String, f: F, ) -> Result<JoinHandle<T>>
Sourcefn supports_parallel(&self) -> bool
fn supports_parallel(&self) -> bool
Returns true if this backend can be safely called from multiple threads.
Defaults to true.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.