1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//! This module contains the necessary primitives to run Perseus as a server,
//! regardless of framework. This module aims to provide as many abstractions as
//! possible to minimize work when maintaining multiple server-framework
//! integrations. Apart from building your own integrations, you should never
//! need to use this module (though some plugins may need types in here).

mod html_shell;
mod options;

pub(crate) use html_shell::HtmlShell;
pub use options::ServerOptions;

/// Removes empty elements from a path, which is important due to double
/// slashes. This returns a vector of the path's components;
pub fn get_path_slice(path: &str) -> Vec<&str> {
    let path_slice: Vec<&str> = path.split('/').filter(|p| !p.is_empty()).collect();

    path_slice
}