aboutsummaryrefslogtreecommitdiff
path: root/src/returnable.rs
diff options
context:
space:
mode:
authorFuwn <[email protected]>2022-03-26 23:39:27 +0000
committerFuwn <[email protected]>2022-03-26 23:39:27 +0000
commit7c82e30086b77edd51fea2a893b65af5ec14e603 (patch)
tree63b73e79af1588f16a39cabc94b3210c79c0565d /src/returnable.rs
parentfeat(mount): use a sophisticated route matcher (diff)
downloadwindmark-7c82e30086b77edd51fea2a893b65af5ec14e603.tar.xz
windmark-7c82e30086b77edd51fea2a893b65af5ec14e603.zip
refactor(mount): context is now struct
Diffstat (limited to 'src/returnable.rs')
-rw-r--r--src/returnable.rs54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/returnable.rs b/src/returnable.rs
new file mode 100644
index 0000000..79a3d7a
--- /dev/null
+++ b/src/returnable.rs
@@ -0,0 +1,54 @@
+// This file is part of Windmark <https://github.com/gemrest/windmark>.
+// 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 std::net::TcpStream;
+
+use matchit::Params;
+use url::Url;
+
+pub struct RouteContext<'a> {
+ pub tcp: &'a TcpStream,
+ pub url: &'a Url,
+ pub params: &'a Params<'a, 'a>,
+}
+impl<'a> RouteContext<'a> {
+ pub const fn new(
+ tcp: &'a TcpStream,
+ url: &'a Url,
+ params: &'a Params<'a, 'a>,
+ ) -> Self {
+ Self {
+ tcp,
+ url,
+ params,
+ }
+ }
+}
+
+pub struct ErrorContext<'a> {
+ pub tcp: &'a TcpStream,
+ pub url: &'a Url,
+}
+impl<'a> ErrorContext<'a> {
+ pub const fn new(tcp: &'a TcpStream, url: &'a Url) -> Self {
+ Self {
+ tcp,
+ url,
+ }
+ }
+}