openid 0.23.0

OpenID Connect & Discovery client library using async / await.
Documentation
#[derive(Debug)]
pub enum Uma2Error {
    NoUma2Discovered,
    AudienceFieldRequired,
    NoResourceSetEndpoint,
    NoPermissionsEndpoint,
    NoPolicyAssociationEndpoint,
    ResourceSetEndpointMalformed,
    PolicyAssociationEndpointMalformed,
}

impl std::error::Error for Uma2Error {
    fn description(&self) -> &str {
        "UMA2 API error"
    }
}

impl std::fmt::Display for Uma2Error {
    fn fmt(&self, f: &mut std::fmt::Formatter) -> Result<(), std::fmt::Error> {
        write!(
            f,
            "{}",
            match *self {
                Uma2Error::NoUma2Discovered => "No UMA2 discovered",
                Uma2Error::AudienceFieldRequired => "Audience field required",
                Uma2Error::NoResourceSetEndpoint => "No resource_set endpoint discovered",
                Uma2Error::NoPermissionsEndpoint => "No permissions endpoint discovered",
                Uma2Error::NoPolicyAssociationEndpoint =>
                    "No permissions policy association endpoint discovered",
                Uma2Error::ResourceSetEndpointMalformed => "resource_set endpoint is malformed",
                Uma2Error::PolicyAssociationEndpointMalformed => "policy_endpoint is malformed",
            }
        )
    }
}