From 6978b2cb6bc41dd82320d2032100977e9e6486f4 Mon Sep 17 00:00:00 2001 From: Eduardo Pinho Date: Thu, 11 Apr 2024 08:44:10 +0100 Subject: [PATCH] [object] fix rebase - remove duplicate value_at method --- object/src/mem.rs | 76 ----------------------------------------------- 1 file changed, 76 deletions(-) diff --git a/object/src/mem.rs b/object/src/mem.rs index a31ccc0ae..0aa6cd94d 100644 --- a/object/src/mem.rs +++ b/object/src/mem.rs @@ -849,82 +849,6 @@ where } } - /// Obtain the DICOM value by finding the element - /// that matches the given selector. - /// - /// Returns an error if the respective element or any of its parents - /// cannot be found. - /// - /// See the documentation of [`AttributeSelector`] for more information - /// on how to write attribute selectors. - /// - /// See also [`entry_at`] to get the entry rather than the value. - /// - /// # Example - /// - /// ```no_run - /// # use dicom_core::prelude::*; - /// # use dicom_core::ops::AttributeSelector; - /// # use dicom_dictionary_std::tags; - /// # use dicom_object::InMemDicomObject; - /// # let obj: InMemDicomObject = unimplemented!(); - /// let referenced_sop_instance_iod = obj.value_at( - /// ( - /// tags::SHARED_FUNCTIONAL_GROUPS_SEQUENCE, - /// tags::REFERENCED_IMAGE_SEQUENCE, - /// tags::REFERENCED_SOP_INSTANCE_UID, - /// ))? - /// .to_str()?; - /// # Ok::<_, Box>(()) - /// ``` - pub fn value_at( - &self, - selector: impl Into, - ) -> Result<&Value, InMemFragment>, AtAccessError> { - let selector = selector.into(); - - let mut obj = self; - for (i, step) in selector.iter().enumerate() { - match step { - // reached the leaf - AttributeSelectorStep::Tag(tag) => { - return obj.get(*tag).map(|e| e.value()).with_context(|| { - MissingLeafElementSnafu { - selector: selector.clone(), - } - }) - } - // navigate further down - AttributeSelectorStep::Nested { tag, item } => { - let e = obj - .entries - .get(tag) - .with_context(|| crate::MissingSequenceSnafu { - selector: selector.clone(), - step_index: i as u32, - })?; - - // get items - let items = e.items().with_context(|| NotASequenceSnafu { - selector: selector.clone(), - step_index: i as u32, - })?; - - // if item.length == i and action is a constructive action, append new item - obj = - items - .get(*item as usize) - .with_context(|| crate::MissingSequenceSnafu { - selector: selector.clone(), - step_index: i as u32, - })?; - } - } - } - - unreachable!() - } - /// Obtain a temporary mutable reference to a DICOM value by AttributeSelector, /// so that mutations can be applied within. ///