rustpython_vm/builtins/
capsule.rs1use super::PyType;
2use crate::{Context, Py, PyPayload, PyResult, class::PyClassImpl, types::Representable};
3
4#[pyclass(module = false, name = "PyCapsule")]
7#[derive(Debug, Clone, Copy)]
8pub struct PyCapsule {
9 _private: (),
12}
13
14impl PyPayload for PyCapsule {
15 #[inline]
16 fn class(ctx: &Context) -> &'static Py<PyType> {
17 ctx.types.capsule_type
18 }
19}
20
21#[pyclass(with(Representable), flags(DISALLOW_INSTANTIATION))]
22impl PyCapsule {}
23
24impl Representable for PyCapsule {
25 #[inline]
26 fn repr_str(_zelf: &Py<Self>, _vm: &crate::VirtualMachine) -> PyResult<String> {
27 Ok("<capsule object>".to_string())
28 }
29}
30
31pub fn init(context: &'static Context) {
32 PyCapsule::extend_class(context, context.types.capsule_type);
33}