pub type UriData<'a> = DataItem<'a, Uri>;
pub enum UriData<'a> { Str(&'a str), Bytes(&'a [u8]), Parsed(Cow<'a, Uri>), }
With parsed, we allow owned data since its likely compact and it may be necessary when we are unable to produce a reference to the primary-source data.