(payload: &Self)
| 132 | |
| 133 | #[inline] |
| 134 | unsafe fn freelist_pop(payload: &Self) -> Option<NonNull<PyObject>> { |
| 135 | let len = payload.elements.len(); |
| 136 | if len == 0 || len > TupleFreeList::MAX_SAVE_SIZE { |
| 137 | return None; |
| 138 | } |
| 139 | TUPLE_FREELIST |
| 140 | .try_with(|fl| { |
| 141 | let mut list = fl.take(); |
| 142 | let result = list.buckets[len - 1].pop(); |
| 143 | fl.set(list); |
| 144 | result |
| 145 | }) |
| 146 | .ok() |
| 147 | .flatten() |
| 148 | } |
| 149 | } |
| 150 | |
| 151 | pub trait IntoPyTuple { |