wireman_core/descriptor/
reflection_request.rsuse super::metadata::Metadata;
use crate::error::{Error, Result};
use tonic::metadata::{Ascii, MetadataKey, MetadataValue};
#[derive(Debug, Clone)]
pub struct ReflectionRequest {
pub host: String,
pub metadata: Option<Metadata>,
}
impl ReflectionRequest {
#[must_use]
pub fn new(host: &str) -> Self {
Self {
host: host.to_string(),
metadata: None,
}
}
pub fn insert_metadata(&mut self, key: &str, val: &str) -> Result<()> {
let key: MetadataKey<Ascii> = key.parse().map_err(|_| Error::ParseToAsciiError)?;
let val: MetadataValue<Ascii> = val.parse().map_err(|_| Error::ParseToAsciiError)?;
let map = self.metadata.get_or_insert(Metadata::new());
map.insert(key, val);
Ok(())
}
}