diff options
Diffstat (limited to 'src/token.rs')
-rw-r--r-- | src/token.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/token.rs b/src/token.rs index 45c8123..da1f8ba 100644 --- a/src/token.rs +++ b/src/token.rs @@ -144,14 +144,22 @@ pub struct AttributeOwned { } impl AttributeMap { - /// Returns the attribute with the given name. + /// Returns the value for the given attribute name. /// /// The name must not contain any uppercase ASCII character (A-Z) /// or the method will always return `None`. - pub fn get(&self, name: &str) -> Option<Attribute> { + pub fn get(&self, name: &str) -> Option<&str> { + self.inner.get(name).map(|map_val| map_val.value.as_str()) + } + + /// Returns the value and trace index for a given attribute name. + /// + /// The name must not contain any uppercase ASCII character (A-Z) + /// or the method will always return `None`. + pub fn value_and_trace_idx(&self, name: &str) -> Option<(&str, Option<AttributeTraceIdx>)> { self.inner - .get_key_value(name) - .map(|(name, map_val)| Attribute { name, map_val }) + .get(name) + .map(|map_val| (map_val.value.as_str(), map_val.trace_idx)) } } |