lexa_framework/routing/
route.rs

1// ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
2// ┃ Copyright: (c) 2023, Mike 'PhiSyX' S. (https://github.com/PhiSyX)         ┃
3// ┃ SPDX-License-Identifier: MPL-2.0                                          ┃
4// ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃
5// ┃                                                                           ┃
6// ┃  This Source Code Form is subject to the terms of the Mozilla Public      ┃
7// ┃  License, v. 2.0. If a copy of the MPL was not distributed with this      ┃
8// ┃  file, You can obtain one at https://mozilla.org/MPL/2.0/.                ┃
9// ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
10
11use std::collections::HashSet;
12
13use axum::{http, routing};
14
15use crate::state;
16
17// --------- //
18// Structure //
19// --------- //
20
21#[derive(Clone)]
22pub struct Route<UserState> {
23	/// Nom de la route.
24	pub name: Option<String>,
25	/// Méthodes HTTP.
26	pub methods: HashSet<http::Method>,
27	/// Chemin complet de la route, en omettant le protocol/schema.
28	pub fullpath: String,
29	/// Action d'un controller.
30	pub(crate) action: routing::MethodRouter<state::State<UserState>>,
31}