mod scheme;
pub use scheme::*;
mod authority;
pub use authority::*;
mod path;
pub use path::*;
mod query;
pub use query::*;
mod fragment;
pub use fragment::*;
#[derive(Debug, Clone, PartialEq)]
pub struct Uri<'uri> {
pub scheme: Scheme<'uri>,
pub authority: Option<Authority<'uri>>,
pub path: Option<Path<'uri>>,
pub query: Option<Query<'uri>>,
pub fragment: Option<Fragment<'uri>>,
pub scheme_data: SchemeData<'uri>,
}
use crate::error::UriError;
impl<'uri> Uri<'uri> {
pub fn new(input: &'uri str) -> Result<Self, UriError<'uri>> {
input.try_into()
}
}