1
0
mirror of https://github.com/fafhrd91/actix-web synced 2024-11-28 10:02:38 +01:00
actix-web/actix-http/src/lib.rs

83 lines
1.8 KiB
Rust
Raw Normal View History

//! Basic HTTP primitives for the Actix ecosystem.
2020-09-10 15:46:35 +02:00
#![deny(rust_2018_idioms)]
#![allow(
clippy::type_complexity,
clippy::too_many_arguments,
clippy::new_without_default,
2019-12-13 05:59:02 +01:00
clippy::borrow_interior_mutable_const
)]
2020-10-01 11:19:09 +02:00
#![allow(clippy::manual_strip)] // Allow this to keep MSRV(1.42).
2019-03-26 19:54:35 +01:00
#[macro_use]
extern crate log;
#[macro_use]
mod macros;
2019-03-26 19:54:35 +01:00
pub mod body;
mod builder;
2019-11-18 13:42:27 +01:00
pub mod client;
mod cloneable;
2019-03-26 19:54:35 +01:00
mod config;
#[cfg(feature = "compress")]
2019-03-26 23:14:32 +01:00
pub mod encoding;
2019-03-26 19:54:35 +01:00
mod extensions;
mod header;
mod helpers;
mod httpcodes;
pub mod httpmessage;
mod message;
mod payload;
mod request;
mod response;
mod service;
Upgrade `time` to 0.2.5 (#1254) * Use `OffsetDateTime` instead of `PrimitiveDateTime` * Parse time strings with `PrimitiveDateTime::parse` instead of `OffsetDateTime::parse` * Remove unused `time` dependency from actix-multipart * Fix a few errors with time related tests from the `time` upgrade * Implement logic to convert a RFC 850 two-digit year into a full length year, and organize time parsing related functions * Upgrade `time` to 0.2.2 * Correctly parse C's asctime time format using time 0.2's new format patterns * Update CHANGES.md * Use `time` without any of its deprecated functions * Enforce a UTC time offset when converting an `OffsetDateTime` into a Header value * Use the more readable version of `Duration::seconds(0)`, `Duration::zero()` * Remove unneeded conversion of time::Duration to std::time::Duration * Use `OffsetDateTime::as_seconds_f64` instead of manually calculating the amount of seconds from nanoseconds * Replace a few additional instances of `Duration::seconds(0)` with `Duration::zero()` * Truncate any nanoseconds from a supplied `Duration` within `Cookie::set_max_age` to ensure two Cookies with the same amount whole seconds equate to one another * Fix the actix-http::cookie::do_not_panic_on_large_max_ages test * Convert `Cookie::max_age` and `Cookie::expires` examples to `time` 0.2 Mainly minor changes. Type inference can be used alongside the new `time::parse` method, such that the type doesn't need to be specified. This will be useful if a refactoring takes place that changes the type. There are also new macros, which are used where possible. One change that is not immediately obvious, in `HttpDate`, there was an unnecessary conditional. As the time crate allows for negative durations (and can perform arithmetic with such), the if/else can be removed entirely. Time v0.2.3 also has some bug fixes, which is why I am not using a more general v0.2 in Cargo.toml. v0.2.3 has been yanked, as it was backwards imcompatible. This version reverts the breaking change, while still supporting rustc back to 1.34.0. * Add missing `time::offset` macro import * Fix type confusion when using `time::parse` followed by `using_offset` * Update `time` to 0.2.5 * Update CHANGES.md Co-authored-by: Jacob Pratt <the.z.cuber@gmail.com>
2020-01-28 12:44:22 +01:00
mod time_parser;
2019-03-26 19:54:35 +01:00
pub use cookie;
2019-03-26 19:54:35 +01:00
pub mod error;
pub mod h1;
pub mod h2;
2019-11-18 13:42:27 +01:00
pub mod test;
pub mod ws;
2019-03-26 19:54:35 +01:00
pub use self::builder::HttpServiceBuilder;
pub use self::config::{KeepAlive, ServiceConfig};
pub use self::error::{Error, ResponseError, Result};
pub use self::extensions::Extensions;
pub use self::httpmessage::HttpMessage;
pub use self::message::{Message, RequestHead, RequestHeadType, ResponseHead};
2019-03-26 19:54:35 +01:00
pub use self::payload::{Payload, PayloadStream};
pub use self::request::Request;
pub use self::response::{Response, ResponseBuilder};
pub use self::service::HttpService;
2019-03-26 19:54:35 +01:00
pub mod http {
//! Various HTTP related types
// re-exports
pub use http::header::{HeaderName, HeaderValue};
pub use http::uri::PathAndQuery;
2019-12-05 18:35:43 +01:00
pub use http::{uri, Error, Uri};
2019-03-30 05:13:39 +01:00
pub use http::{Method, StatusCode, Version};
2019-03-26 19:54:35 +01:00
2019-03-30 05:13:39 +01:00
pub use crate::cookie::{Cookie, CookieBuilder};
pub use crate::header::HeaderMap;
2019-03-26 19:54:35 +01:00
/// Various http headers
pub mod header {
pub use crate::header::*;
}
pub use crate::header::ContentEncoding;
pub use crate::message::ConnectionType;
}
2019-12-02 12:33:11 +01:00
/// Http protocol
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
pub enum Protocol {
Http1,
Http2,
}
type ConnectCallback<IO> = dyn Fn(&IO, &mut Extensions);