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

Function value_to_object

crates/stdlib/src/_sqlite3.rs:3384–3409  ·  view source on GitHub ↗
(val: *mut sqlite3_value, db: *mut sqlite3, vm: &VirtualMachine)

Source from the content-addressed store, hash-verified

3382 }
3383
3384 fn value_to_object(val: *mut sqlite3_value, db: *mut sqlite3, vm: &VirtualMachine) -> PyResult {
3385 let obj = unsafe {
3386 match sqlite3_value_type(val) {
3387 SQLITE_INTEGER => vm.ctx.new_int(sqlite3_value_int64(val)).into(),
3388 SQLITE_FLOAT => vm.ctx.new_float(sqlite3_value_double(val)).into(),
3389 SQLITE_TEXT => {
3390 let text =
3391 ptr_to_vec(sqlite3_value_text(val), sqlite3_value_bytes(val), db, vm)?;
3392 let text = String::from_utf8(text)
3393 .map_err(|_| vm.new_value_error("invalid utf-8 with SQLITE_TEXT"))?;
3394 vm.ctx.new_str(text).into()
3395 }
3396 SQLITE_BLOB => {
3397 let blob = ptr_to_vec(
3398 sqlite3_value_blob(val).cast(),
3399 sqlite3_value_bytes(val),
3400 db,
3401 vm,
3402 )?;
3403 vm.ctx.new_bytes(blob).into()
3404 }
3405 _ => vm.ctx.none(),
3406 }
3407 };
3408 Ok(obj)
3409 }
3410
3411 fn ptr_to_str<'a>(p: *const libc::c_char, vm: &VirtualMachine) -> PyResult<&'a str> {
3412 if p.is_null() {

Callers 2

func_callbackMethod · 0.85
call_method_with_argsMethod · 0.85

Calls 7

ptr_to_vecFunction · 0.85
noneMethod · 0.80
new_intMethod · 0.45
new_floatMethod · 0.45
new_strMethod · 0.45
castMethod · 0.45
new_bytesMethod · 0.45

Tested by

no test coverage detected