pub(crate) unsafe trait JSTraceable {
// Required method
unsafe fn trace(&self, trc: *mut JSTracer);
}Expand description
Types that can be traced.
This trait is unsafe; if it is implemented incorrectly, the GC may end up collecting objects that are still reachable.
Required Methods§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl<A, B, C, D, E, F, G, H, I, J, K, L> Traceable for (A, B, C, D, E, F, G, H, I, J, K, L)
impl<A, B, C, D, E, F, G, H, I, J, K, L> Traceable for (A, B, C, D, E, F, G, H, I, J, K, L)
Source§impl<A, B, C, D, E, F, G, H, I, J, K> Traceable for (A, B, C, D, E, F, G, H, I, J, K)
impl<A, B, C, D, E, F, G, H, I, J, K> Traceable for (A, B, C, D, E, F, G, H, I, J, K)
Source§impl<A, B, C, D, E, F, G, H, I, J> Traceable for (A, B, C, D, E, F, G, H, I, J)
impl<A, B, C, D, E, F, G, H, I, J> Traceable for (A, B, C, D, E, F, G, H, I, J)
Source§impl<A, B, C, D, E, F, G, H, I> Traceable for (A, B, C, D, E, F, G, H, I)
impl<A, B, C, D, E, F, G, H, I> Traceable for (A, B, C, D, E, F, G, H, I)
Source§impl<A, B, C, D, E, F, G, H> Traceable for (A, B, C, D, E, F, G, H)
impl<A, B, C, D, E, F, G, H> Traceable for (A, B, C, D, E, F, G, H)
Source§impl<A, B, C, D, E, F, G> Traceable for (A, B, C, D, E, F, G)
impl<A, B, C, D, E, F, G> Traceable for (A, B, C, D, E, F, G)
Source§impl<A, B, C, D, E, F> Traceable for (A, B, C, D, E, F)
impl<A, B, C, D, E, F> Traceable for (A, B, C, D, E, F)
Source§impl<A, B, C, D, E> Traceable for (A, B, C, D, E)
impl<A, B, C, D, E> Traceable for (A, B, C, D, E)
Source§impl<A, B, C, D> Traceable for (A, B, C, D)
impl<A, B, C, D> Traceable for (A, B, C, D)
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, L, ...) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K, L> Traceable for unsafe fn(A, B, C, D, E, F, G, H, I, J, K, L) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, K, ...) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J, K> Traceable for unsafe fn(A, B, C, D, E, F, G, H, I, J, K) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for fn(A, B, C, D, E, F, G, H, I, J) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for fn(A, B, C, D, E, F, G, H, I, J) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, J, ...) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I, J> Traceable for unsafe fn(A, B, C, D, E, F, G, H, I, J) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, I, ...) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H, I> Traceable for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret
impl<Ret, A, B, C, D, E, F, G, H, I> Traceable for unsafe fn(A, B, C, D, E, F, G, H, I) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Traceable for extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G, H> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G, H> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, H, ...) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret
impl<Ret, A, B, C, D, E, F, G> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G) -> Ret
Source§impl<Ret, A, B, C, D, E, F, G> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
impl<Ret, A, B, C, D, E, F, G> Traceable for unsafe extern "C" fn(A, B, C, D, E, F, G, ...) -> Ret
Source§impl<T> Traceable for RootableVec<T>where
T: Traceable,
impl<T> Traceable for RootableVec<T>where
T: Traceable,
Source§impl<T> Traceable for RootedTraceableBox<T>where
T: Traceable + 'static,
impl<T> Traceable for RootedTraceableBox<T>where
T: Traceable + 'static,
Source§impl<T> Traceable for UnsafeCell<T>where
T: Traceable,
impl<T> Traceable for UnsafeCell<T>where
T: Traceable,
Implementors§
impl Traceable for Algorithm
impl Traceable for AlignSetting
impl Traceable for AnalyserOptions
impl Traceable for AnimationEventInit
impl Traceable for ArrayBufferOrArrayBufferView
impl Traceable for ArrayBufferViewOrArrayBuffer
impl Traceable for ArrayBufferViewOrArrayBufferOrJsonWebKey
impl Traceable for AssignedNodesOptions
impl Traceable for AudioBufferOptions
impl Traceable for AudioContextLatencyCategory
impl Traceable for AudioContextLatencyCategoryOrDouble
impl Traceable for AudioContextOptions
impl Traceable for AudioContextState
impl Traceable for AudioNodeOptions
impl Traceable for AudioTimestamp
impl Traceable for AutoKeyword
impl Traceable for AutomationRate
impl Traceable for BaseComputedKeyframe
impl Traceable for BaseKeyframe
impl Traceable for BasePropertyIndexedKeyframe
impl Traceable for BinaryType
impl Traceable for BiquadFilterOptions
impl Traceable for BiquadFilterType
impl Traceable for BlobPropertyBag
impl Traceable for BluetoothDataFilterInit
impl Traceable for BluetoothLEScanFilterInit
impl Traceable for BluetoothPermissionDescriptor
impl Traceable for BooleanOrMediaTrackConstraints
impl Traceable for BooleanOrScrollIntoViewOptions
impl Traceable for ByteString
impl Traceable for ByteStringOrLong
impl Traceable for ByteStringSequenceOrLong
impl Traceable for ByteStringSequenceOrLongOrString
impl Traceable for ByteStringSequenceSequenceOrByteStringByteStringRecord
impl Traceable for CSPViolationReportBody
impl Traceable for CacheQueryOptions
impl Traceable for CanPlayTypeResult
impl Traceable for CanvasColorType
impl Traceable for CanvasDirection
impl Traceable for CanvasFillRule
impl Traceable for CanvasLineCap
impl Traceable for CanvasLineJoin
impl Traceable for CanvasRenderingContext2DSettings
impl Traceable for CanvasTextAlign
impl Traceable for CanvasTextBaseline
impl Traceable for ChannelCountMode
impl Traceable for ChannelInterpretation
impl Traceable for ChannelMergerOptions
impl Traceable for ChannelSplitterOptions
impl Traceable for ClampedUnsignedLongOrConstrainULongRange
impl Traceable for ClipboardItemOptions
impl Traceable for CloseEventInit
impl Traceable for ColorSpaceConversion
impl Traceable for CompositeOperation
impl Traceable for CompositeOperationOrAuto
impl Traceable for CompressionFormat
impl Traceable for ComputedEffectTiming
impl Traceable for ConstantSourceOptions
impl Traceable for ConstrainDoubleRange
impl Traceable for ConstrainULongRange
impl Traceable for Constructor
impl Traceable for CookieInit
impl Traceable for CookieListItem
impl Traceable for CookieSameSite
impl Traceable for CookieStoreDeleteOptions
impl Traceable for CookieStoreGetOptions
impl Traceable for CredentialData
impl Traceable for CredentialMediationRequirement
impl Traceable for CustomEventInit
impl Traceable for DOMMatrix2DInit
impl Traceable for DOMMatrixInit
impl Traceable for DOMPointInit
impl Traceable for DOMQuadInit
impl Traceable for DOMRectInit
impl Traceable for DOMString
impl Traceable for DOMStringType
Safety comment:
This method will not trace the pointer if the rust string exists. The js string could be garbage collected and, hence, violating this could lead to undefined behavior