websocketz 0.2.0

A zerocopy websockets implementation for no_std environments.
Documentation
use crate::CloseCode;

/// A WebSocket Close frame.
#[derive(Debug)]
pub struct CloseFrame<'a> {
    /// The reason as a code.
    code: CloseCode,
    /// The reason as text string.
    reason: &'a str,
}

impl<'a> CloseFrame<'a> {
    /// Creates a new [`CloseFrame`].
    pub const fn new(code: CloseCode, reason: &'a str) -> Self {
        Self { code, reason }
    }

    /// Creates a new [`CloseFrame`] with no reason.
    pub const fn no_reason(code: CloseCode) -> Self {
        Self::new(code, "")
    }

    /// Returns the close code.
    pub const fn code(&self) -> CloseCode {
        self.code
    }

    /// Returns the reason as a string slice.
    pub const fn reason(&self) -> &'a str {
        self.reason
    }
}