Skip to content

Commit f314328

Browse files
committed
lifetime bounded TryFromBorrwoedObject
1 parent 0f24d66 commit f314328

File tree

15 files changed

+53
-38
lines changed

15 files changed

+53
-38
lines changed

examples/call_between_rust_and_python.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,8 @@ python_person.name: {}",
8686
name: String,
8787
}
8888

89-
impl TryFromBorrowedObject for PythonPerson {
90-
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &PyObject) -> PyResult<Self> {
89+
impl<'a> TryFromBorrowedObject<'a> for PythonPerson {
90+
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &'a PyObject) -> PyResult<Self> {
9191
let name = obj.get_attr("name", vm)?.try_into_value::<String>(vm)?;
9292
Ok(PythonPerson { name })
9393
}

stdlib/src/mmap.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ mod mmap {
7272
Copy = 3,
7373
}
7474

75-
impl TryFromBorrowedObject for AccessMode {
76-
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &PyObject) -> PyResult<Self> {
75+
impl<'a> TryFromBorrowedObject<'a> for AccessMode {
76+
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &'a PyObject) -> PyResult<Self> {
7777
let i = u32::try_from_borrowed_object(vm, obj)?;
7878
Ok(match i {
7979
0 => Self::Default,

stdlib/src/resource.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,8 +129,8 @@ mod resource {
129129
}
130130

131131
struct Limits(libc::rlimit);
132-
impl TryFromBorrowedObject for Limits {
133-
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &PyObject) -> PyResult<Self> {
132+
impl<'a> TryFromBorrowedObject<'a> for Limits {
133+
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &'a PyObject) -> PyResult<Self> {
134134
let seq: Vec<libc::rlim_t> = obj.try_to_value(vm)?;
135135
match *seq {
136136
[cur, max] => Ok(Self(libc::rlimit {

stdlib/src/unicodedata.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ enum NormalizeForm {
4141
Nfkd,
4242
}
4343

44-
impl TryFromBorrowedObject for NormalizeForm {
45-
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &PyObject) -> PyResult<Self> {
44+
impl<'a> TryFromBorrowedObject<'a> for NormalizeForm {
45+
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &'a PyObject) -> PyResult<Self> {
4646
obj.try_value_with(
4747
|form: &PyStr| {
4848
Ok(match form.as_str() {

stdlib/src/zlib.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -581,8 +581,8 @@ mod zlib {
581581
}
582582
}
583583

584-
impl TryFromBorrowedObject for Level {
585-
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &PyObject) -> PyResult<Self> {
584+
impl<'a> TryFromBorrowedObject<'a> for Level {
585+
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &'a PyObject) -> PyResult<Self> {
586586
let int: i32 = obj.try_index(vm)?.try_to_primitive(vm)?;
587587
Ok(Self::new(int))
588588
}

vm/src/builtins/bool.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ impl ToPyObject for bool {
1919
}
2020
}
2121

22-
impl TryFromBorrowedObject for bool {
23-
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &PyObject) -> PyResult<bool> {
22+
impl<'a> TryFromBorrowedObject<'a> for bool {
23+
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &'a PyObject) -> PyResult<bool> {
2424
if obj.fast_isinstance(vm.ctx.types.int_type) {
2525
Ok(get_value(obj))
2626
} else {

vm/src/builtins/bytes.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -742,8 +742,8 @@ impl IterNext for PyBytesIterator {
742742
}
743743
}
744744

745-
impl TryFromBorrowedObject for PyBytes {
746-
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &PyObject) -> PyResult<Self> {
745+
impl<'a> TryFromBorrowedObject<'a> for PyBytes {
746+
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &'a PyObject) -> PyResult<Self> {
747747
PyBytesInner::try_from_borrowed_object(vm, obj).map(|x| x.into())
748748
}
749749
}

vm/src/builtins/int.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ impl_into_pyobject_int!(isize i8 i16 i32 i64 i128 usize u8 u16 u32 u64 u128 BigI
7272

7373
macro_rules! impl_try_from_object_int {
7474
($(($t:ty, $to_prim:ident),)*) => {$(
75-
impl TryFromBorrowedObject for $t {
76-
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &PyObject) -> PyResult<Self> {
75+
impl<'a> TryFromBorrowedObject<'a> for $t {
76+
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &'a PyObject) -> PyResult<Self> {
7777
obj.try_value_with(|int: &PyInt| {
7878
int.try_to_primitive(vm)
7979
}, vm)

vm/src/builtins/str.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ use unic_ucd_category::GeneralCategory;
4242
use unic_ucd_ident::{is_xid_continue, is_xid_start};
4343
use unicode_casing::CharExt;
4444

45-
impl TryFromBorrowedObject for String {
46-
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &PyObject) -> PyResult<Self> {
45+
impl<'a> TryFromBorrowedObject<'a> for String {
46+
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &'a PyObject) -> PyResult<Self> {
4747
obj.try_value_with(|pystr: &PyStr| Ok(pystr.as_str().to_owned()), vm)
4848
}
4949
}

vm/src/bytesinner.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ impl From<Vec<u8>> for PyBytesInner {
3030
}
3131
}
3232

33-
impl TryFromBorrowedObject for PyBytesInner {
34-
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &PyObject) -> PyResult<Self> {
33+
impl<'a> TryFromBorrowedObject<'a> for PyBytesInner {
34+
fn try_from_borrowed_object(vm: &VirtualMachine, obj: &'a PyObject) -> PyResult<Self> {
3535
bytes_from_object(vm, obj).map(Self::from)
3636
}
3737
}

0 commit comments

Comments
 (0)