1use super::Stream;
2use super::state::WriteState;
3
4use crate::frame::Mask;
5use crate::role::RoleHelper;
6use crate::error::CtrlError;
7
8impl<IO, Role, Guard> Stream<IO, Role, Guard>
9where
10 Role: RoleHelper,
11{
12 #[inline]
14 pub fn mask_key(&self) -> Mask { self.role.mask_key() }
15
16 #[inline]
19 pub fn set_mask_key(&mut self, key: [u8; 4]) -> Result<(), CtrlError> {
20 if let WriteState::WriteHead(head) = self.write_state {
22 if head.is_empty() {
23 self.role.set_mask_key(key);
24 return Ok(());
25 }
26 }
27 Err(CtrlError::SetMaskInWrite)
28 }
29}