use pile_config::Label; use std::collections::HashMap; use crate::{extract::traits::ObjectExtractor, value::PileValue}; #[derive(Default)] pub struct MapExtractor { pub inner: HashMap, } #[async_trait::async_trait] impl ObjectExtractor for MapExtractor { async fn field( &self, name: &Label, args: Option<&str>, ) -> Result, std::io::Error> { if args.is_some() { return Ok(None); } Ok(self.inner.get(name).cloned()) } async fn fields(&self) -> Result, std::io::Error> { Ok(self.inner.keys().cloned().collect()) } }