logo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
//! Salvo is a powerful and simplest web server framework in Rust world. Read more: <https://salvo.rs>

#![doc(html_favicon_url = "https://salvo.rs/favicon-32x32.png")]
#![doc(html_logo_url = "https://salvo.rs/images/logo.svg")]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![deny(private_in_public, unreachable_pub)]
#![forbid(unsafe_code)]
#![warn(missing_docs)]

#[macro_use]
mod cfg;
pub use salvo_core as core;
#[doc(no_inline)]
pub use salvo_core::*;

cfg_feature! {
    #![any(
        feature = "affix",
        feature = "extra",
        feature = "basic-auth",
        feature = "caching-headers",
        feature = "compression",
        feature = "cors",
        feature = "csrf",
        feature = "force-https",
        feature = "jwt-auth",
        feature = "logging",
        feature = "proxy",
        feature = "serve-static",
        feature = "session",
        feature = "size-limiter",
        feature = "sse",
        feature = "trailing-slash",
        feature = "timeout",
        feature = "ws"
    )]

    #[doc(no_inline)]
    pub use salvo_extra as extra;
}

/// A list of things that automatically imports into application use salvo.
pub mod prelude {
    pub use salvo_core::prelude::*;
    cfg_feature! {
        #![feature ="affix"]
        pub use salvo_extra::affix;
    }
    cfg_feature! {
        #![feature ="basic-auth"]
        pub use salvo_extra::basic_auth::{BasicAuth, BasicAuthDepotExt, BasicAuthValidator};
    }
    cfg_feature! {
        #![feature ="caching-headers"]
        pub use salvo_extra::caching_headers::CachingHeaders;
    }
    cfg_feature! {
        #![feature ="compression"]
        pub use salvo_extra::compression::{Compression, CompressionAlgo};
    }
    cfg_feature! {
        #![feature ="cors"]
        pub use salvo_extra::cors::Cors;
    }
    cfg_feature! {
        #![feature ="csrf"]
        pub use salvo_extra::csrf::{CsrfDepotExt, Csrf};
    }
    cfg_feature! {
        #![feature ="force-https"]
        pub use salvo_extra::force_https::ForceHttps;
    }
    cfg_feature! {
        #![feature ="jwt-auth"]
        pub use salvo_extra::jwt_auth::{JwtAuthDepotExt, JwtAuth};
    }
    cfg_feature! {
        #![feature ="logging"]
        pub use salvo_extra::logging::Logger;
    }
    cfg_feature! {
        #![feature ="proxy"]
        pub use salvo_extra::proxy::Proxy;
    }
    cfg_feature! {
        #![feature ="serve-static"]
        pub use salvo_extra::serve_static::{StaticDir, StaticFile, static_embed, render_embedded_file, EmbeddedFileExt, StaticEmbed};
    }
    cfg_feature! {
        #![feature ="session"]
        pub use salvo_extra::session::{Session, SessionDepotExt, SessionHandler, SessionStore, MemoryStore, CookieStore};
    }
    cfg_feature! {
        #![feature ="size-limiter"]
        pub use salvo_extra::size_limiter::max_size;
    }
    cfg_feature! {
        #![feature ="sse"]
        pub use salvo_extra::sse::{SseEvent, SseKeepAlive};
    }
    cfg_feature! {
        #![feature ="trailing-slash"]
        pub use salvo_extra::trailing_slash::{self, TrailingSlash, TrailingSlashAction};
    }
    cfg_feature! {
        #![feature ="timeout"]
        pub use salvo_extra::timeout::Timeout;
    }
    cfg_feature! {
        #![feature ="ws"]
        pub use salvo_extra::ws::WebSocketUpgrade;
    }
}