1use crate::impl_::pyfunction::PyFunctionDef;
2use crate::types::{
3 PyBool, PyByteArray, PyBytes, PyCapsule, PyComplex, PyDict, PyFloat, PyFrozenSet, PyList,
4 PyMapping, PyMappingProxy, PyModule, PyRange, PySequence, PySet, PySlice, PyString,
5 PyTraceback, PyTuple, PyType, PyWeakref, PyWeakrefProxy, PyWeakrefReference,
6};
7use crate::{ffi, Bound, PyAny, PyResult};
8
9use crate::pyclass_init::PyClassInitializer;
10
11use crate::impl_::{
12 pyclass_init::PyNativeTypeInitializer,
13 pymethods::PyMethodDef,
14 pymodule::{AddClassToModule, AddTypeToModule, ModuleDef},
15};
16
17pub trait Sealed {}
18
19impl Sealed for *mut ffi::PyObject {}
21
22impl Sealed for PyResult<Bound<'_, PyAny>> {}
24
25impl Sealed for Bound<'_, PyAny> {}
27impl Sealed for Bound<'_, PyBool> {}
28impl Sealed for Bound<'_, PyByteArray> {}
29impl Sealed for Bound<'_, PyBytes> {}
30impl Sealed for Bound<'_, PyCapsule> {}
31impl Sealed for Bound<'_, PyComplex> {}
32impl Sealed for Bound<'_, PyDict> {}
33impl Sealed for Bound<'_, PyFloat> {}
34impl Sealed for Bound<'_, PyFrozenSet> {}
35impl Sealed for Bound<'_, PyList> {}
36impl Sealed for Bound<'_, PyMapping> {}
37impl Sealed for Bound<'_, PyMappingProxy> {}
38impl Sealed for Bound<'_, PyModule> {}
39impl Sealed for Bound<'_, PyRange> {}
40impl Sealed for Bound<'_, PySequence> {}
41impl Sealed for Bound<'_, PySet> {}
42impl Sealed for Bound<'_, PySlice> {}
43impl Sealed for Bound<'_, PyString> {}
44impl Sealed for Bound<'_, PyTraceback> {}
45impl Sealed for Bound<'_, PyTuple> {}
46impl Sealed for Bound<'_, PyType> {}
47impl Sealed for Bound<'_, PyWeakref> {}
48impl Sealed for Bound<'_, PyWeakrefProxy> {}
49impl Sealed for Bound<'_, PyWeakrefReference> {}
50
51impl<T> Sealed for AddTypeToModule<T> {}
52impl<T> Sealed for AddClassToModule<T> {}
53impl Sealed for PyMethodDef {}
54impl Sealed for PyFunctionDef {}
55impl Sealed for ModuleDef {}
56
57impl<T: crate::type_object::PyTypeInfo> Sealed for PyNativeTypeInitializer<T> {}
58impl<T: crate::pyclass::PyClass> Sealed for PyClassInitializer<T> {}
59
60impl Sealed for std::sync::Once {}
61impl<T> Sealed for std::sync::Mutex<T> {}
62#[cfg(feature = "lock_api")]
63impl<R, T> Sealed for lock_api::Mutex<R, T> {}
64#[cfg(feature = "parking_lot")]
65impl Sealed for parking_lot::Once {}
66#[cfg(feature = "arc_lock")]
67impl<R, T> Sealed for std::sync::Arc<lock_api::Mutex<R, T>> {}
68#[cfg(feature = "lock_api")]
69impl<R, G, T> Sealed for lock_api::ReentrantMutex<R, G, T> {}
70#[cfg(feature = "arc_lock")]
71impl<R, G, T> Sealed for std::sync::Arc<lock_api::ReentrantMutex<R, G, T>> {}