mirror of
https://github.com/YGGverse/ggemini.git
synced 2026-03-31 09:05:45 +00:00
33 lines
711 B
Rust
33 lines
711 B
Rust
pub mod default;
|
|
pub mod error;
|
|
|
|
pub use default::Default;
|
|
pub use error::Error;
|
|
|
|
pub const CODE: u8 = b'2';
|
|
|
|
pub enum Success {
|
|
Default(Default),
|
|
// reserved for 2* codes
|
|
}
|
|
|
|
impl Success {
|
|
// Constructors
|
|
|
|
/// Parse new `Self` from buffer bytes
|
|
pub fn parse(buffer: &[u8]) -> Result<Self, Error> {
|
|
if !buffer.first().is_some_and(|b| *b == CODE) {
|
|
return Err(Error::Code);
|
|
}
|
|
match Default::parse(&buffer) {
|
|
Ok(default) => Ok(Self::Default(default)),
|
|
Err(e) => Err(Error::Default(e)),
|
|
}
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn test() {
|
|
// let default = Success::parse("20 text/gemini; charset=utf-8; lang=en\r\n".as_bytes());
|
|
todo!()
|
|
}
|