MCPcopy Index your code
hub / github.com/RustPython/RustPython / as_number

Method as_number

crates/vm/src/builtins/weakproxy.rs:242–293  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

240
241impl AsNumber for PyWeakProxy {
242 fn as_number() -> &'static PyNumberMethods {
243 static AS_NUMBER: LazyLock<PyNumberMethods> = LazyLock::new(|| PyNumberMethods {
244 boolean: Some(|number, vm| {
245 let obj = proxy_upgrade(number.obj, vm)?;
246 obj.is_true(vm)
247 }),
248 int: Some(|number, vm| {
249 let obj = proxy_upgrade(number.obj, vm)?;
250 obj.try_int(vm).map(Into::into)
251 }),
252 float: Some(|number, vm| {
253 let obj = proxy_upgrade(number.obj, vm)?;
254 obj.try_float(vm).map(Into::into)
255 }),
256 index: Some(|number, vm| {
257 let obj = proxy_upgrade(number.obj, vm)?;
258 obj.try_index(vm).map(Into::into)
259 }),
260 negative: proxy_unary_slot!(_neg),
261 positive: proxy_unary_slot!(_pos),
262 absolute: proxy_unary_slot!(_abs),
263 invert: proxy_unary_slot!(_invert),
264 add: proxy_binary_slot!(_add),
265 subtract: proxy_binary_slot!(_sub),
266 multiply: proxy_binary_slot!(_mul),
267 remainder: proxy_binary_slot!(_mod),
268 divmod: proxy_binary_slot!(_divmod),
269 lshift: proxy_binary_slot!(_lshift),
270 rshift: proxy_binary_slot!(_rshift),
271 and: proxy_binary_slot!(_and),
272 xor: proxy_binary_slot!(_xor),
273 or: proxy_binary_slot!(_or),
274 floor_divide: proxy_binary_slot!(_floordiv),
275 true_divide: proxy_binary_slot!(_truediv),
276 matrix_multiply: proxy_binary_slot!(_matmul),
277 inplace_add: proxy_binary_slot!(_iadd),
278 inplace_subtract: proxy_binary_slot!(_isub),
279 inplace_multiply: proxy_binary_slot!(_imul),
280 inplace_remainder: proxy_binary_slot!(_imod),
281 inplace_lshift: proxy_binary_slot!(_ilshift),
282 inplace_rshift: proxy_binary_slot!(_irshift),
283 inplace_and: proxy_binary_slot!(_iand),
284 inplace_xor: proxy_binary_slot!(_ixor),
285 inplace_or: proxy_binary_slot!(_ior),
286 inplace_floor_divide: proxy_binary_slot!(_ifloordiv),
287 inplace_true_divide: proxy_binary_slot!(_itruediv),
288 inplace_matrix_multiply: proxy_binary_slot!(_imatmul),
289 power: proxy_ternary_slot!(_pow),
290 inplace_power: proxy_ternary_slot!(_ipow),
291 });
292 &AS_NUMBER
293 }
294}
295
296impl Comparable for PyWeakProxy {

Callers

nothing calls this directly

Calls 8

newFunction · 0.85
proxy_upgradeFunction · 0.85
is_trueMethod · 0.80
try_intMethod · 0.80
try_floatMethod · 0.80
try_indexMethod · 0.80
SomeClass · 0.50
mapMethod · 0.45

Tested by

no test coverage detected