oxide_auth_async/frontends/simple/extensions/
extended.rs

1use oxide_auth::{
2    frontends::simple::extensions::Extended,
3    endpoint::{WebRequest, Scopes, Template, OAuthError},
4};
5
6use crate::{
7    endpoint::{Endpoint, Extension, OwnerSolicitor},
8    primitives::{Registrar, Authorizer, Issuer},
9};
10
11impl<Request, Inner, Ext> Endpoint<Request> for Extended<Inner, Ext>
12where
13    Request: WebRequest,
14    Inner: Endpoint<Request>,
15    Ext: Extension + Send,
16{
17    type Error = Inner::Error;
18
19    fn registrar(&self) -> Option<&(dyn Registrar + Sync)> {
20        self.inner.registrar()
21    }
22
23    fn authorizer_mut(&mut self) -> Option<&mut (dyn Authorizer + Send)> {
24        self.inner.authorizer_mut()
25    }
26
27    fn issuer_mut(&mut self) -> Option<&mut (dyn Issuer + Send)> {
28        self.inner.issuer_mut()
29    }
30
31    fn owner_solicitor(&mut self) -> Option<&mut (dyn OwnerSolicitor<Request> + Send)> {
32        self.inner.owner_solicitor()
33    }
34
35    fn scopes(&mut self) -> Option<&mut dyn Scopes<Request>> {
36        self.inner.scopes()
37    }
38
39    fn response(
40        &mut self, request: &mut Request, kind: Template,
41    ) -> Result<Request::Response, Self::Error> {
42        self.inner.response(request, kind)
43    }
44
45    fn error(&mut self, err: OAuthError) -> Self::Error {
46        self.inner.error(err)
47    }
48
49    fn web_error(&mut self, err: Request::Error) -> Self::Error {
50        self.inner.web_error(err)
51    }
52
53    fn extension(&mut self) -> Option<&mut (dyn Extension + Send)> {
54        Some(&mut self.addons)
55    }
56}