pub trait ExtraBackendMethods:
CodegenBackend
+ WriteBackendMethods
+ Sized
+ Send
+ Sync
+ DynSend
+ DynSync {
// Required methods
fn codegen_allocator<'tcx>(
&self,
tcx: TyCtxt<'tcx>,
module_name: &str,
kind: AllocatorKind,
alloc_error_handler_kind: AllocatorKind,
) -> 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 method
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 { ... }
}
Required Methods§
fn codegen_allocator<'tcx>( &self, tcx: TyCtxt<'tcx>, module_name: &str, kind: AllocatorKind, alloc_error_handler_kind: AllocatorKind, ) -> 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>>
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.