Skip to main content

saml_rs/model/
received.rs

1use super::RelayStateParam;
2
3/// Typed received message wrapper.
4#[derive(Debug, Clone)]
5pub struct Received<Message> {
6    message: Message,
7    relay_state: RelayStateParam,
8}
9
10impl<Message> Received<Message> {
11    /// Create a received message wrapper with absent RelayState.
12    pub fn new(message: Message) -> Self {
13        Self {
14            message,
15            relay_state: RelayStateParam::absent(),
16        }
17    }
18
19    /// Record the RelayState received with the browser message.
20    pub fn with_relay_state(mut self, relay_state: RelayStateParam) -> Self {
21        self.relay_state = relay_state;
22        self
23    }
24
25    /// Borrow the typed message.
26    pub fn message(&self) -> &Message {
27        &self.message
28    }
29
30    /// RelayState received with the browser message.
31    pub fn relay_state(&self) -> &RelayStateParam {
32        &self.relay_state
33    }
34
35    /// Consume the wrapper and return the typed message.
36    pub fn into_message(self) -> Message {
37        self.message
38    }
39}