diff --git a/vm/src/objdict.rs b/vm/src/objdict.rs index 92497f4bb..ece1df349 100644 --- a/vm/src/objdict.rs +++ b/vm/src/objdict.rs @@ -26,7 +26,7 @@ pub fn new(dict_type: PyObjectRef) -> PyObjectRef { ) } -fn get_elements(obj: &PyObjectRef) -> HashMap { +pub fn get_elements(obj: &PyObjectRef) -> HashMap { if let PyObjectKind::Dict { elements } = &obj.borrow().kind { elements.clone() } else { diff --git a/vm/src/objlist.rs b/vm/src/objlist.rs index 95d106596..48169c6fc 100644 --- a/vm/src/objlist.rs +++ b/vm/src/objlist.rs @@ -26,7 +26,7 @@ pub fn set_item( } } -fn get_elements(obj: PyObjectRef) -> Vec { +pub fn get_elements(obj: PyObjectRef) -> Vec { if let PyObjectKind::List { elements } = &obj.borrow().kind { elements.to_vec() } else { diff --git a/vm/src/objsequence.rs b/vm/src/objsequence.rs index b4c87d8ac..7647b0fcd 100644 --- a/vm/src/objsequence.rs +++ b/vm/src/objsequence.rs @@ -98,3 +98,11 @@ pub fn get_item( ))), } } + +pub fn get_elements(obj: PyObjectRef) -> Vec { + if let PyObjectKind::Tuple { elements } = &obj.borrow().kind { + elements.to_vec() + } else { + panic!("Cannot extract list elements from non-list"); + } +}