diff options
| author | Fuwn <[email protected]> | 2022-06-14 08:45:09 +0000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2022-06-14 08:45:09 +0000 |
| commit | b5703a59c59bfe95143cf8dc6cc54f20f67fb4fd (patch) | |
| tree | 44022e3944119c39df5b9082aaac3a77841c8c10 /src/request/response.rs | |
| parent | fix(ast): list ast construction (diff) | |
| download | germ-b5703a59c59bfe95143cf8dc6cc54f20f67fb4fd.tar.xz germ-b5703a59c59bfe95143cf8dc6cc54f20f67fb4fd.zip | |
feat(macros): general utility macros
Diffstat (limited to 'src/request/response.rs')
| -rw-r--r-- | src/request/response.rs | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/src/request/response.rs b/src/request/response.rs deleted file mode 100644 index 5e1f436..0000000 --- a/src/request/response.rs +++ /dev/null @@ -1,71 +0,0 @@ -// This file is part of Germ <https://github.com/gemrest/germ>. -// Copyright (C) 2022-2022 Fuwn <[email protected]> -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, version 3. -// -// This program is distributed in the hope that it will be useful, but -// WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. -// -// Copyright (C) 2022-2022 Fuwn <[email protected]> -// SPDX-License-Identifier: GPL-3.0-only - -use rustls::SupportedCipherSuite; - -use crate::request::Status; - -#[derive(Debug)] -pub struct Response { - status: Status, - meta: String, - content: Option<String>, - size: usize, - suite: Option<SupportedCipherSuite>, -} -impl Response { - pub(super) fn new(data: &[u8], suite: Option<SupportedCipherSuite>) -> Self { - let string_form = String::from_utf8_lossy(data).to_string(); - let mut content = None; - let header; - - if string_form.ends_with("\r\n") { - header = string_form; - } else { - let mut string_split = string_form.split("\r\n"); - - header = string_split.next().unwrap_or("").to_string(); - content = Some(string_split.collect()); - } - - let header_split = header.split_at(2); - - Self { - status: Status::from(header_split.0.parse::<i32>().unwrap_or(0)), - meta: header_split.1.trim_start().to_string(), - content, - size: data.len(), - suite, - } - } - - #[must_use] - pub const fn status(&self) -> &Status { &self.status } - - #[must_use] - pub fn meta(&self) -> &str { &self.meta } - - #[must_use] - pub const fn content(&self) -> &Option<String> { &self.content } - - #[must_use] - pub const fn size(&self) -> &usize { &self.size } - - #[must_use] - pub const fn suite(&self) -> &Option<SupportedCipherSuite> { &self.suite } -} |