Add iter() in cloudevents::event::Attributes (#89)

* Add iter in Attributes

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>

* Removed bad import

Signed-off-by: Francesco Guardiani <francescoguard@gmail.com>
This commit is contained in:
Francesco Guardiani 2020-10-19 09:29:15 +02:00 committed by GitHub
parent fbadb3300a
commit 1858a1caa5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 6 deletions

View File

@ -243,6 +243,13 @@ impl Attributes {
_ => self,
}
}
pub fn iter(&self) -> impl Iterator<Item = (&str, AttributeValue)> {
match self {
Attributes::V03(a) => AttributesIter::IterV03(a.into_iter()),
Attributes::V10(a) => AttributesIter::IterV10(a.into_iter()),
}
}
}
#[cfg(not(target_arch = "wasm32"))]

View File

@ -1,6 +1,6 @@
use super::{
AttributeValue, Attributes, AttributesIter, AttributesReader, AttributesV10, AttributesWriter,
Data, ExtensionValue, SpecVersion,
AttributeValue, Attributes, AttributesReader, AttributesV10, AttributesWriter, Data,
ExtensionValue, SpecVersion,
};
use crate::event::attributes::DataAttributesWriter;
use chrono::{DateTime, Utc};
@ -82,10 +82,7 @@ impl Event {
/// Returns an [`Iterator`] for all the available [CloudEvents Context attributes](https://github.com/cloudevents/spec/blob/master/spec.md#context-attributes), excluding extensions.
/// This iterator does not contain the `data` field.
pub fn iter_attributes(&self) -> impl Iterator<Item = (&str, AttributeValue)> {
match &self.attributes {
Attributes::V03(a) => AttributesIter::IterV03(a.into_iter()),
Attributes::V10(a) => AttributesIter::IterV10(a.into_iter()),
}
self.attributes.iter()
}
/// Get all the [extensions](https://github.com/cloudevents/spec/blob/master/spec.md#extension-context-attributes)