From 934612314bde09e32ee05d6faafa6dd86f243ddb Mon Sep 17 00:00:00 2001 From: Daniel Watkins Date: Thu, 30 Aug 2018 18:51:54 -0400 Subject: [PATCH] Add or make public get_elements for sequences/dicts --- vm/src/objdict.rs | 2 +- vm/src/objlist.rs | 2 +- vm/src/objsequence.rs | 8 ++++++++ 3 files changed, 10 insertions(+), 2 deletions(-) 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"); + } +}