oxide_auth_async/frontends/simple/extensions/
extended.rs1use 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}