pub struct PyCode {
pub code: CodeObject<Literal>,
}
Fields§
§code: CodeObject<Literal>
Implementations§
Source§impl PyCode
impl PyCode
pub fn co_filename(&self) -> PyStrRef
pub fn co_cellvars(&self, vm: &VirtualMachine) -> PyTupleRef
pub fn co_varnames(&self, vm: &VirtualMachine) -> PyTupleRef
pub fn co_freevars(&self, vm: &VirtualMachine) -> PyTupleRef
pub fn replace( &self, args: ReplaceArgs, vm: &VirtualMachine, ) -> PyResult<PyCode>
Methods from Deref<Target = CodeObject<Literal>>§
Sourcepub fn arg_names(&self) -> Arguments<'_, <C as Constant>::Name>
pub fn arg_names(&self) -> Arguments<'_, <C as Constant>::Name>
Get all arguments of the code object like inspect.getargs
Sourcepub fn label_targets(&self) -> BTreeSet<Label>
pub fn label_targets(&self) -> BTreeSet<Label>
Return the labels targeted by the instructions of this CodeObject
Sourcepub fn display_expand_code_objects(&self) -> impl Display
pub fn display_expand_code_objects(&self) -> impl Display
Recursively display this CodeObject
Sourcepub fn map_clone_bag<Bag>(
&self,
bag: &Bag,
) -> CodeObject<<Bag as ConstantBag>::Constant>where
Bag: ConstantBag,
pub fn map_clone_bag<Bag>(
&self,
bag: &Bag,
) -> CodeObject<<Bag as ConstantBag>::Constant>where
Bag: ConstantBag,
Same as map_bag
but clones self
Trait Implementations§
Source§impl MaybeTraverse for PyCode
impl MaybeTraverse for PyCode
fn try_traverse(&self, tracer_fn: &mut TraverseFn<'_>)
Source§impl PyClassDef for PyCode
impl PyClassDef for PyCode
Source§impl PyClassImpl for PyCode
impl PyClassImpl for PyCode
const TP_FLAGS: PyTypeFlags
const METHOD_DEFS: &'static [PyMethodDef]
fn impl_extend_class(ctx: &Context, class: &'static Py<PyType>)
fn extend_slots(slots: &mut PyTypeSlots)
fn extend_class(ctx: &Context, class: &'static Py<PyType>)where
Self: Sized,
fn make_class(ctx: &Context) -> PyTypeRefwhere
Self: StaticType + Sized,
fn make_slots() -> PyTypeSlots
Source§impl PyPayload for PyCode
impl PyPayload for PyCode
fn class(ctx: &Context) -> &'static Py<PyType>
fn into_pyobject(self, vm: &VirtualMachine) -> PyObjectRef
fn _into_ref(self, cls: PyTypeRef, ctx: &Context) -> PyRef<Self>
fn into_exact_ref(self, ctx: &Context) -> PyRefExact<Self>
fn into_ref(self, ctx: &Context) -> PyRef<Self>
fn into_ref_with_type( self, vm: &VirtualMachine, cls: PyTypeRef, ) -> PyResult<PyRef<Self>>
Source§impl Representable for PyCode
impl Representable for PyCode
fn repr_str(zelf: &Py<Self>, _vm: &VirtualMachine) -> PyResult<String>
fn slot_repr(zelf: &PyObject, vm: &VirtualMachine) -> PyResult<PyStrRef>
fn __repr__(zelf: PyObjectRef, vm: &VirtualMachine) -> PyResult<PyStrRef>
fn repr(zelf: &Py<Self>, vm: &VirtualMachine) -> PyResult<PyStrRef>
const __OWN_METHOD_DEFS: &'static [PyMethodDef] = _
fn __extend_py_class(ctx: &Context, class: &'static Py<PyType>)
fn __extend_slots(slots: &mut PyTypeSlots)
Source§impl StaticType for PyCode
impl StaticType for PyCode
fn static_cell() -> &'static StaticCell<PyTypeRef>
fn static_metaclass() -> &'static Py<PyType>
fn static_baseclass() -> &'static Py<PyType>
fn static_type() -> &'static Py<PyType>
fn init_manually(typ: PyTypeRef) -> &'static Py<PyType>
fn init_builtin_type() -> &'static Py<PyType>where
Self: PyClassImpl,
fn create_static_type() -> PyTypeRefwhere
Self: PyClassImpl,
Auto Trait Implementations§
impl Freeze for PyCode
impl !RefUnwindSafe for PyCode
impl !Send for PyCode
impl !Sync for PyCode
impl Unpin for PyCode
impl !UnwindSafe for PyCode
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
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more