pub struct JVMTIEnv<'a> { /* private fields */ }
Implementations§
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_capabilities(&self) -> Result<JCapabilities<'_>>
pub fn get_potential_capabilities(&self) -> Result<JCapabilities<'_>>
pub fn add_capabilities(&self, caps: &JCapabilities<'_>) -> Result<()>
pub fn relinquish_capabilities(&self, caps: &JCapabilities<'_>) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_loaded_classes(&self) -> Result<Vec<JClass<'_>>>
pub fn get_class_loader_classes( &self, initiating_loader: &JObject<'_>, ) -> Result<Vec<JClass<'_>>>
pub fn retransform_classes(&self, classes: &Vec<JClass<'_>>) -> Result<()>
pub fn redefine_classes( &self, classes: &Vec<JClassDefinition<'_>>, ) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_class<S>(&self, jni: &JNIEnv<'a>, name: S) -> Result<JClass<'_>>
pub fn get_class_signature<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<JSignature<'_>>
pub fn get_class_status<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<JvmtiClassStatus>
pub fn get_source_file_name<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<String>
pub fn get_class_modifiers<K>(&self, jni: &JNIEnv<'a>, class: K) -> Result<jint>
pub fn get_class_methods<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<Vec<JMethodID<'_>>>
pub fn get_class_fields<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<Vec<JFieldID<'_>>>
pub fn get_implemented_interfaces<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<Vec<JClass<'_>>>
pub fn is_interface<K>(&self, jni: &JNIEnv<'a>, class: K) -> Result<bool>
pub fn is_array_class<K>(&self, jni: &JNIEnv<'a>, class: K) -> Result<bool>
pub fn is_modifiable_class<K>(&self, jni: &JNIEnv<'a>, class: K) -> Result<bool>
pub fn get_source_debug_extension<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<String>
pub fn get_class_loader<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<JClassLoader<'_>>
pub fn get_constant_pool<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<JConstantPool<'_>>
pub fn get_class_version_numbers<K>( &self, jni: &JNIEnv<'a>, class: K, ) -> Result<JClassVersionNumber<'_>>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn set_event_callbacks(&self, callbacks: &JEventCallbacks<'_>) -> Result<()>
pub fn set_event_notification_mode( &self, mode: JvmtiEventMode, event_type: JvmtiEvent, event_thread: &Option<JThreadID<'_>>, ) -> Result<()>
pub fn generate_events(&self, event_type: JvmtiEvent) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_extension_events(&self) -> Result<Vec<JExtensionEventInfo<'_>>>
pub fn get_extension_functions(&self) -> Result<Vec<JExtensionFunctionInfo<'_>>>
pub fn set_extension_event_callback( &self, extension_event_index: jint, callback: jvmtiExtensionEvent, ) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_field_id<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<(JClass<'_>, JFieldID<'_>)>
pub fn get_static_field_id<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<(JClass<'_>, JStaticFieldID<'_>)>
pub fn get_field_name<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<JFieldName<'_>>
pub fn get_field_declaring_class<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<JObject<'_>>
pub fn get_field_modifiers<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<jint>
pub fn is_field_synthetic<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<bool>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_field_declaring_class_i<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<JObject<'_>>
pub fn get_field_modifiers_i<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<jint>
pub fn is_field_synthetic_i<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<bool>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_field_declaring_class_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<JObject<'_>>
pub fn get_field_modifiers_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<jint>
pub fn is_field_synthetic_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<bool>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn force_early_return_object( &self, thread: &JThreadID<'_>, value: &JObject<'_>, ) -> Result<()>
pub fn force_early_return_int( &self, thread: &JThreadID<'_>, value: jint, ) -> Result<()>
pub fn force_early_return_long( &self, thread: &JThreadID<'_>, value: jlong, ) -> Result<()>
pub fn force_early_return_float( &self, thread: &JThreadID<'_>, value: jfloat, ) -> Result<()>
pub fn force_early_return_double( &self, thread: &JThreadID<'_>, value: jdouble, ) -> Result<()>
pub fn force_early_return_void(&self, thread: &JThreadID<'_>) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn dispose_environment(&self) -> Result<()>
pub fn get_version_number(&self) -> Result<jint>
pub fn get_error_name(&self, error: JvmtiError) -> Result<String>
pub fn get_environment_local_storage(&self) -> Result<JLocalStorage<'_>>
pub fn set_environment_local_storage( &self, data: &JLocalStorage<'_>, ) -> Result<()>
pub fn set_verbose_flag( &self, flag: JvmtiVerboseFlag, value: bool, ) -> Result<()>
pub fn get_jlocation_format(&self) -> Result<JvmtiJlocationFormat>
pub fn get_phase(&self) -> Result<JvmtiPhase>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn iterate_over_objects_reachable_from_object( &self, object: &JObject<'_>, callback: jvmtiObjectReferenceCallback, user_data: *const c_void, ) -> Result<()>
pub fn iterate_over_reachable_objects( &self, heap_root_callback: jvmtiHeapRootCallback, stack_ref_callback: jvmtiStackReferenceCallback, object_ref_callback: jvmtiObjectReferenceCallback, user_data: *const c_void, ) -> Result<()>
pub fn iterate_over_heap( &self, object_filter: jvmtiHeapObjectFilter, heap_object_callback: jvmtiHeapObjectCallback, user_data: *const c_void, ) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn iterate_over_instances_of_class<K>( &self, jni: &JNIEnv<'a>, class: K, object_filter: jvmtiHeapObjectFilter, heap_object_callback: jvmtiHeapObjectCallback, user_data: *const c_void, ) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn follow_references<K>( &self, jni: &JNIEnv<'a>, heap_filter: jint, class: K, initial_object: &JObject<'_>, callbacks: &Vec<jvmtiHeapCallbacks>, user_data: *const c_void, ) -> Result<()>
pub fn iterate_through_heap<K>( &self, jni: &JNIEnv<'a>, heap_filter: jint, class: K, callbacks: &Vec<jvmtiHeapCallbacks>, user_data: *const c_void, ) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_local_instance( &self, thread: &JThreadID<'_>, depth: jint, ) -> Result<Option<JObject<'_>>>
pub fn get_local_object( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, ) -> Result<Option<JObject<'_>>>
pub fn get_local_int( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, ) -> Result<jint>
pub fn get_local_long( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, ) -> Result<jlong>
pub fn get_local_float( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, ) -> Result<jfloat>
pub fn get_local_double( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, ) -> Result<jdouble>
pub fn set_local_object( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, obj: &Option<JObject<'_>>, ) -> Result<()>
pub fn set_local_int( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, value: jint, ) -> Result<()>
pub fn set_local_long( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, value: jlong, ) -> Result<()>
pub fn set_local_float( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, value: jfloat, ) -> Result<()>
pub fn set_local_double( &self, thread: &JThreadID<'_>, depth: jint, slot: jint, value: jdouble, ) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn allocate(&self, size: jlong) -> Result<Option<JMemoryAllocate<'_>>>
pub fn deallocate_raw(&self, memory: jmemory) -> Result<()>
pub fn deallocate<T>(&self, memory: &T) -> Result<()>where
T: JDeallocate<'a>,
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn set_native_method_prefix<S>(&self, prefix: S) -> Result<()>
pub fn set_native_method_prefixes<S>(&self, prefixes: &Vec<S>) -> Result<()>
pub fn get_method_name<M>(&self, method: M) -> Result<JMethodName<'_>>where
M: AdapterTransform<jmethodID>,
pub fn get_method_declaring_class<M>(&self, method: M) -> Result<JObject<'_>>where
M: AdapterTransform<jmethodID>,
pub fn get_method_modifiers<M>(&self, method: M) -> Result<jint>where
M: AdapterTransform<jmethodID>,
pub fn get_max_locals<M>(&self, method: M) -> Result<jint>where
M: AdapterTransform<jmethodID>,
pub fn get_arguments_size<M>(&self, method: M) -> Result<jint>where
M: AdapterTransform<jmethodID>,
pub fn get_line_number_table<M>(
&self,
method: M,
) -> Result<Vec<JLineNumberEntry<'_>>>where
M: AdapterTransform<jmethodID>,
pub fn get_method_location<M>(&self, method: M) -> Result<JMethodLocation<'_>>where
M: AdapterTransform<jmethodID>,
pub fn get_local_variable_table<M>(
&self,
method: M,
) -> Result<Vec<JLocalVariableEntry<'_>>>where
M: AdapterTransform<jmethodID>,
pub fn get_bytecodes<M>(&self, method: M) -> Result<JMemoryAllocate<'_>>where
M: AdapterTransform<jmethodID>,
pub fn is_method_native<M>(&self, method: M) -> Result<bool>where
M: AdapterTransform<jmethodID>,
pub fn is_method_synthetic<M>(&self, method: M) -> Result<bool>where
M: AdapterTransform<jmethodID>,
pub fn is_method_obsolete<M>(&self, method: M) -> Result<bool>where
M: AdapterTransform<jmethodID>,
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_method_declaring_class_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JObject<'_>>
pub fn get_method_modifiers_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
pub fn get_max_locals_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
pub fn get_arguments_size_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
pub fn get_line_number_table_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<Vec<JLineNumberEntry<'_>>>
pub fn get_method_location_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JMethodLocation<'_>>
pub fn get_local_variable_table_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<Vec<JLocalVariableEntry<'_>>>
pub fn get_bytecodes_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JMemoryAllocate<'_>>
pub fn is_method_native_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
pub fn is_method_synthetic_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
pub fn is_method_obsolete_i<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_method_id<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JMethodID<'_>>
pub fn get_static_method_id<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JStaticMethodID<'_>>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_method_declaring_class_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JObject<'_>>
pub fn get_method_modifiers_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
pub fn get_max_locals_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
pub fn get_arguments_size_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<jint>
pub fn get_line_number_table_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<Vec<JLineNumberEntry<'_>>>
pub fn get_method_location_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JMethodLocation<'_>>
pub fn get_local_variable_table_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<Vec<JLocalVariableEntry<'_>>>
pub fn get_bytecodes_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<JMemoryAllocate<'_>>
pub fn is_method_native_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
pub fn is_method_synthetic_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
pub fn is_method_obsolete_s<K, M, V>( &self, jni: &JNIEnv<'a>, class: K, name: M, sig: V, ) -> Result<bool>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_object_size(&self, obj: &JObject<'_>) -> Result<jlong>
pub fn get_object_hash_code(&self, obj: &JObject<'_>) -> Result<jint>
pub fn get_object_monitor_usage( &self, obj: &JObject<'_>, ) -> Result<JMonitorUsage<'_>>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn create_raw_monitor<N>( &self, name: N, ) -> Result<Option<JRawMonitorID<'_>>>
pub fn destroy_raw_monitor(&self, monitor_id: &JRawMonitorID<'_>) -> Result<()>
pub fn raw_monitor_enter(&self, monitor_id: &JRawMonitorID<'_>) -> Result<()>
pub fn raw_monitor_exit(&self, monitor_id: &JRawMonitorID<'_>) -> Result<()>
pub fn raw_monitor_wait( &self, monitor_id: &JRawMonitorID<'_>, millis: jlong, ) -> Result<()>
pub fn raw_monitor_notify(&self, monitor_id: &JRawMonitorID<'_>) -> Result<()>
pub fn raw_monitor_notify_all( &self, monitor_id: &JRawMonitorID<'_>, ) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_stack_trace( &self, thread: &JThreadID<'_>, start_depth: jint, max_frame_count: jint, ) -> Result<(JFrameInfo<'_>, jint)>
pub fn get_all_stack_traces( &self, max_frame_count: jint, ) -> Result<(Vec<JStackInfo<'_>>, jint)>
pub fn get_thread_list_stack_traces( &self, threads: &Vec<JThreadID<'_>>, max_frame_count: jint, ) -> Result<Vec<JStackInfo<'_>>>
pub fn get_frame_count(&self, thread: &JThreadID<'_>) -> Result<jint>
pub fn get_frame_location( &self, thread: &JThreadID<'_>, depth: jint, ) -> Result<Option<JFrameInfo<'_>>>
pub fn pop_frame(&self, thread: &JThreadID<'_>) -> Result<()>
pub fn notify_frame_pop( &self, thread: &JThreadID<'_>, depth: jint, ) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_thread_state( &self, thread: &JThreadID<'_>, ) -> Result<JvmtiThreadState>
pub fn get_current_thread(&self) -> Result<Option<JThreadID<'_>>>
pub fn get_all_threads(&self) -> Result<Vec<JThreadID<'_>>>
pub fn suspend_thread(&self, thread: &JThreadID<'_>) -> Result<()>
pub fn resume_thread(&self, thread: &JThreadID<'_>) -> Result<()>
pub fn stop_thread( &self, thread: &JThreadID<'_>, exception: &JThrowable<'_>, ) -> Result<()>
pub fn interrupt_thread(&self, thread: &JThreadID<'_>) -> Result<()>
pub fn suspend_thread_list( &self, threads: &Vec<JThreadID<'_>>, ) -> Result<JvmtiError>
pub fn resume_thread_list( &self, threads: &Vec<JThreadID<'_>>, ) -> Result<JvmtiError>
pub fn get_thread_info(&self, thread: &JThreadID<'_>) -> Result<JThreadInfo<'_>>
pub fn get_owned_monitor_info( &self, thread: &JThreadID<'_>, ) -> Result<Vec<JObject<'_>>>
pub fn get_owned_monitor_stack_depth_info( &self, thread: &JThreadID<'_>, ) -> Result<Vec<JMonitorStackDepthInfo<'_>>>
pub fn get_current_contended_monitor( &self, thread: &JThreadID<'_>, ) -> Result<Option<JObject<'_>>>
pub fn run_agent_thread( &self, thread: &JThreadID<'_>, proc: jvmtiStartFunction, arg: *const c_void, priority: JvmtiThreadPriority, ) -> Result<()>
pub fn get_thread_local_storage( &self, thread: &JThreadID<'_>, ) -> Result<JLocalStorage<'_>>
pub fn set_thread_local_storage( &self, thread: &JThreadID<'_>, data: &JLocalStorage<'_>, ) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_top_thread_groups(&self) -> Result<Vec<JThreadGroupID<'_>>>
pub fn get_thread_group_info( &self, thread_group: &JThreadGroupID<'_>, ) -> Result<JThreadGroupInfo<'_>>
pub fn get_thread_group_children( &self, thread_group: &JThreadGroupID<'_>, ) -> Result<(Vec<JThreadID<'_>>, Vec<JThreadGroupID<'_>>)>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn get_current_thread_cpu_time(&self) -> Result<jlong>
pub fn get_thread_cpu_time(&self, thread: &JThreadID<'_>) -> Result<jlong>
pub fn get_time(&self) -> Result<jlong>
pub fn get_current_thread_cpu_timer_info(&self) -> Result<JTimerInfo<'_>>
pub fn get_thread_cpu_timer_info(&self) -> Result<JTimerInfo<'_>>
pub fn get_timer_info(&self) -> Result<JTimerInfo<'_>>
pub fn get_available_processors(&self) -> Result<jint>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub fn set_field_access_watch<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<()>
pub fn clear_field_access_watch<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<()>
pub fn set_field_modification_watch<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<()>
pub fn clear_field_modification_watch<K, F>( &self, jni: &JNIEnv<'a>, class: K, field: F, ) -> Result<()>
pub fn set_field_access_watch_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<()>
pub fn clear_field_access_watch_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<()>
pub fn set_field_modification_watch_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<()>
pub fn clear_field_modification_watch_s<K, F, V>( &self, jni: &JNIEnv<'a>, class: K, name: F, sig: V, ) -> Result<()>
Source§impl<'a> JVMTIEnv<'a>
impl<'a> JVMTIEnv<'a>
pub unsafe fn from_raw(ptr: *mut jvmtiEnv) -> Result<Self>
pub fn jvmti_raw(&self) -> *mut jvmtiEnv
pub fn build_string(&self, value: *mut c_char) -> Result<JvmtiString<'_>>
pub fn define_class_definition( &self, klass: JClass<'a>, size: jlong, code_bytes: jmemory, ) -> Result<JClassDefinition<'_>>
Trait Implementations§
Auto Trait Implementations§
impl<'a> Freeze for JVMTIEnv<'a>
impl<'a> RefUnwindSafe for JVMTIEnv<'a>
impl<'a> !Send for JVMTIEnv<'a>
impl<'a> !Sync for JVMTIEnv<'a>
impl<'a> Unpin for JVMTIEnv<'a>
impl<'a> UnwindSafe for JVMTIEnv<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more