Closed
Description
Code
please clone code by running: git clone https://github.com/songday/blog-rs.git
reproduce steps
- git clone https://github.com/songday/blog-rs.git
- cd blog-rs
- git checkout dev_0.1.0
- cd backend
- cargo b (this time code will be complied successfully)
- edit
build.rs
, modify line: 69, add]
, exwriteln!(&mut service_asset_file, r##"] "##,)?;
- run
cargo b
again
Once I run cargo clean
and build again, everything will be fine.
Meta
rustc --version --verbose
:
rustc 1.52.0-nightly (f5d8117c3 2021-03-16)
binary: rustc
commit-hash: f5d8117c338a788bd24abec733fd143dfceb25a0
commit-date: 2021-03-16
host: x86_64-pc-windows-msvc
release: 1.52.0-nightly
LLVM version: 12.0.0
Error output
thread 'rustc' panicked at 'found unstable fingerprints for evaluate_obligation(b221e4f0760c8617-1fd22c69d1158f36)', /rustc/f5d8117c338a788bd24abec733fd143dfceb25a0\compiler\rustc_query_system\src\query\plumbing.rs:593:5
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md
note: rustc 1.52.0-nightly (f5d8117c3 2021-03-16) running on x86_64-pc-windows-msvc
note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental --crate-type bin
note: some of the compiler flags provided by cargo are hidden
query stack during panic:
#0 [evaluate_obligation] evaluating trait selection obligation `hyper::body::body::Body: std::convert::From<&str>`
#1 [normalize_projection_ty] normalizing `Canonical { max_universe: U0, variables: [], value: ParamEnvAnd { param_env: ParamEnv { caller_bounds: [], reveal: All }, value: ProjectionTy { substs: [futures_util::future::future::Map<hyper::server::shutdown::Graceful<hyper::server::tcp::AddrIncoming, hyper::service::make::MakeServiceFn<[closure@warp::server::Server<warp::filter::recover::Recover<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::asset::index}>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::index}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::config}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::LoginParams>::{closure#0}]>>, fn(std::option::Option<std::string::String>, blog_common::dto::user::LoginParams) -> impl std::future::Future {blog_backend::facade::user::login}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::RegisterParams>::{closure#0}]>>, fn(blog_common::dto::user::RegisterParams) -> impl std::future::Future {blog_backend::facade::user::register}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::logout}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::info}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::image::verify_image}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u8) -> impl std::future::Future {blog_backend::facade::post::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::tag::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(std::string::String, u8) -> impl std::future::Future {blog_backend::facade::post::list_by_tag}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::post::NewPost>::{closure#0}]>>, fn(std::option::Option<blog_common::dto::user::UserInfo>, blog_common::dto::post::NewPost) -> impl std::future::Future {blog_backend::facade::post::save}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u64>::{closure#0}], (u64,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u64) -> impl std::future::Future {blog_backend::facade::post::show}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filters::multipart::FormOptions>, fn(std::option::Option<blog_common::dto::user::UserInfo>, warp::filters::multipart::FormData) -> impl std::future::Future {blog_backend::facade::image::upload}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::untuple_one::UntupleOne<warp::filter::and_then::AndThen<warp::filter::map_err::MapErr<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::header2<headers::common::content_length::ContentLength>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<headers::common::content_length::ContentLength, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#1}]>>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::aggregate::{closure#0}]>>, fn(std::string::String, std::option::Option<blog_common::dto::user::UserInfo>, hyper::common::buf::BufList<bytes::bytes::Bytes>) -> impl std::future::Future {blog_backend::facade::image::save::<hyper::common::buf::BufList<bytes::bytes::Bytes>>}>>>, fn(warp::reject::Rejection) -> impl std::future::Future {blog_backend::facade::handle_rejection}>>::bind_with_graceful_shutdown<std::net::SocketAddr, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>>::{closure#1}::{closure#0}]>, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>, hyper::common::exec::Exec>, [closure@warp::server::Server<warp::filter::recover::Recover<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::asset::index}>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::index}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::config}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::LoginParams>::{closure#0}]>>, fn(std::option::Option<std::string::String>, blog_common::dto::user::LoginParams) -> impl std::future::Future {blog_backend::facade::user::login}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::RegisterParams>::{closure#0}]>>, fn(blog_common::dto::user::RegisterParams) -> impl std::future::Future {blog_backend::facade::user::register}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::logout}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::info}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::image::verify_image}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u8) -> impl std::future::Future {blog_backend::facade::post::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::tag::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(std::string::String, u8) -> impl std::future::Future {blog_backend::facade::post::list_by_tag}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::post::NewPost>::{closure#0}]>>, fn(std::option::Option<blog_common::dto::user::UserInfo>, blog_common::dto::post::NewPost) -> impl std::future::Future {blog_backend::facade::post::save}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u64>::{closure#0}], (u64,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u64) -> impl std::future::Future {blog_backend::facade::post::show}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filters::multipart::FormOptions>, fn(std::option::Option<blog_common::dto::user::UserInfo>, warp::filters::multipart::FormData) -> impl std::future::Future {blog_backend::facade::image::upload}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::untuple_one::UntupleOne<warp::filter::and_then::AndThen<warp::filter::map_err::MapErr<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::header2<headers::common::content_length::ContentLength>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<headers::common::content_length::ContentLength, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#1}]>>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::aggregate::{closure#0}]>>, fn(std::string::String, std::option::Option<blog_common::dto::user::UserInfo>, hyper::common::buf::BufList<bytes::bytes::Bytes>) -> impl std::future::Future {blog_backend::facade::image::save::<hyper::common::buf::BufList<bytes::bytes::Bytes>>}>>>, fn(warp::reject::Rejection) -> impl std::future::Future {blog_backend::facade::handle_rejection}>>::bind_with_graceful_shutdown<std::net::SocketAddr, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>>::{closure#0}]>], item_def_id: DefId(2:11839 ~ core[f48f]::future::future::Future::Output) } } }`
#2 [normalize_generic_arg_after_erasing_regions] normalizing `for<'r> fn(std::result::Result<<futures_util::future::future::Map<hyper::server::shutdown::Graceful<hyper::server::tcp::AddrIncoming, hyper::service::make::MakeServiceFn<[closure@warp::server::Server<warp::filter::recover::Recover<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::asset::index}>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::index}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::config}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::LoginParams>::{closure#0}]>>, fn(std::option::Option<std::string::String>, blog_common::dto::user::LoginParams) -> impl std::future::Future {blog_backend::facade::user::login}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::RegisterParams>::{closure#0}]>>, fn(blog_common::dto::user::RegisterParams) -> impl std::future::Future {blog_backend::facade::user::register}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::logout}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::info}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::image::verify_image}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u8) -> impl std::future::Future {blog_backend::facade::post::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::tag::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(std::string::String, u8) -> impl std::future::Future {blog_backend::facade::post::list_by_tag}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::post::NewPost>::{closure#0}]>>, fn(std::option::Option<blog_common::dto::user::UserInfo>, blog_common::dto::post::NewPost) -> impl std::future::Future {blog_backend::facade::post::save}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u64>::{closure#0}], (u64,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u64) -> impl std::future::Future {blog_backend::facade::post::show}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filters::multipart::FormOptions>, fn(std::option::Option<blog_common::dto::user::UserInfo>, warp::filters::multipart::FormData) -> impl std::future::Future {blog_backend::facade::image::upload}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::untuple_one::UntupleOne<warp::filter::and_then::AndThen<warp::filter::map_err::MapErr<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::header2<headers::common::content_length::ContentLength>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<headers::common::content_length::ContentLength, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#1}]>>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::aggregate::{closure#0}]>>, fn(std::string::String, std::option::Option<blog_common::dto::user::UserInfo>, hyper::common::buf::BufList<bytes::bytes::Bytes>) -> impl std::future::Future {blog_backend::facade::image::save::<hyper::common::buf::BufList<bytes::bytes::Bytes>>}>>>, fn(warp::reject::Rejection) -> impl std::future::Future {blog_backend::facade::handle_rejection}>>::bind_with_graceful_shutdown<std::net::SocketAddr, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>>::{closure#1}::{closure#0}]>, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>, hyper::common::exec::Exec>, [closure@warp::server::Server<warp::filter::recover::Recover<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::asset::index}>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::index}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::config}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::LoginParams>::{closure#0}]>>, fn(std::option::Option<std::string::String>, blog_common::dto::user::LoginParams) -> impl std::future::Future {blog_backend::facade::user::login}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::RegisterParams>::{closure#0}]>>, fn(blog_common::dto::user::RegisterParams) -> impl std::future::Future {blog_backend::facade::user::register}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::logout}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::info}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::image::verify_image}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u8) -> impl std::future::Future {blog_backend::facade::post::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::tag::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(std::string::String, u8) -> impl std::future::Future {blog_backend::facade::post::list_by_tag}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::post::NewPost>::{closure#0}]>>, fn(std::option::Option<blog_common::dto::user::UserInfo>, blog_common::dto::post::NewPost) -> impl std::future::Future {blog_backend::facade::post::save}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u64>::{closure#0}], (u64,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u64) -> impl std::future::Future {blog_backend::facade::post::show}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filters::multipart::FormOptions>, fn(std::option::Option<blog_common::dto::user::UserInfo>, warp::filters::multipart::FormData) -> impl std::future::Future {blog_backend::facade::image::upload}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::untuple_one::UntupleOne<warp::filter::and_then::AndThen<warp::filter::map_err::MapErr<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::header2<headers::common::content_length::ContentLength>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<headers::common::content_length::ContentLength, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#1}]>>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::aggregate::{closure#0}]>>, fn(std::string::String, std::option::Option<blog_common::dto::user::UserInfo>, hyper::common::buf::BufList<bytes::bytes::Bytes>) -> impl std::future::Future {blog_backend::facade::image::save::<hyper::common::buf::BufList<bytes::bytes::Bytes>>}>>>, fn(warp::reject::Rejection) -> impl std::future::Future {blog_backend::facade::handle_rejection}>>::bind_with_graceful_shutdown<std::net::SocketAddr, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>>::{closure#0}]> as std::future::Future>::Output, ()>, &'r str) -> <futures_util::future::future::Map<hyper::server::shutdown::Graceful<hyper::server::tcp::AddrIncoming, hyper::service::make::MakeServiceFn<[closure@warp::server::Server<warp::filter::recover::Recover<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::asset::index}>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::index}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::config}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::LoginParams>::{closure#0}]>>, fn(std::option::Option<std::string::String>, blog_common::dto::user::LoginParams) -> impl std::future::Future {blog_backend::facade::user::login}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::RegisterParams>::{closure#0}]>>, fn(blog_common::dto::user::RegisterParams) -> impl std::future::Future {blog_backend::facade::user::register}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::logout}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::info}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::image::verify_image}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u8) -> impl std::future::Future {blog_backend::facade::post::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::tag::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(std::string::String, u8) -> impl std::future::Future {blog_backend::facade::post::list_by_tag}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::post::NewPost>::{closure#0}]>>, fn(std::option::Option<blog_common::dto::user::UserInfo>, blog_common::dto::post::NewPost) -> impl std::future::Future {blog_backend::facade::post::save}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u64>::{closure#0}], (u64,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u64) -> impl std::future::Future {blog_backend::facade::post::show}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filters::multipart::FormOptions>, fn(std::option::Option<blog_common::dto::user::UserInfo>, warp::filters::multipart::FormData) -> impl std::future::Future {blog_backend::facade::image::upload}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::untuple_one::UntupleOne<warp::filter::and_then::AndThen<warp::filter::map_err::MapErr<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::header2<headers::common::content_length::ContentLength>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<headers::common::content_length::ContentLength, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#1}]>>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::aggregate::{closure#0}]>>, fn(std::string::String, std::option::Option<blog_common::dto::user::UserInfo>, hyper::common::buf::BufList<bytes::bytes::Bytes>) -> impl std::future::Future {blog_backend::facade::image::save::<hyper::common::buf::BufList<bytes::bytes::Bytes>>}>>>, fn(warp::reject::Rejection) -> impl std::future::Future {blog_backend::facade::handle_rejection}>>::bind_with_graceful_shutdown<std::net::SocketAddr, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>>::{closure#1}::{closure#0}]>, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>, hyper::common::exec::Exec>, [closure@warp::server::Server<warp::filter::recover::Recover<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::asset::index}>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::index}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::config}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::LoginParams>::{closure#0}]>>, fn(std::option::Option<std::string::String>, blog_common::dto::user::LoginParams) -> impl std::future::Future {blog_backend::facade::user::login}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::RegisterParams>::{closure#0}]>>, fn(blog_common::dto::user::RegisterParams) -> impl std::future::Future {blog_backend::facade::user::register}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::logout}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::info}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::image::verify_image}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u8) -> impl std::future::Future {blog_backend::facade::post::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::tag::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(std::string::String, u8) -> impl std::future::Future {blog_backend::facade::post::list_by_tag}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::post::NewPost>::{closure#0}]>>, fn(std::option::Option<blog_common::dto::user::UserInfo>, blog_common::dto::post::NewPost) -> impl std::future::Future {blog_backend::facade::post::save}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u64>::{closure#0}], (u64,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u64) -> impl std::future::Future {blog_backend::facade::post::show}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filters::multipart::FormOptions>, fn(std::option::Option<blog_common::dto::user::UserInfo>, warp::filters::multipart::FormData) -> impl std::future::Future {blog_backend::facade::image::upload}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::untuple_one::UntupleOne<warp::filter::and_then::AndThen<warp::filter::map_err::MapErr<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::header2<headers::common::content_length::ContentLength>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<headers::common::content_length::ContentLength, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#1}]>>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::aggregate::{closure#0}]>>, fn(std::string::String, std::option::Option<blog_common::dto::user::UserInfo>, hyper::common::buf::BufList<bytes::bytes::Bytes>) -> impl std::future::Future {blog_backend::facade::image::save::<hyper::common::buf::BufList<bytes::bytes::Bytes>>}>>>, fn(warp::reject::Rejection) -> impl std::future::Future {blog_backend::facade::handle_rejection}>>::bind_with_graceful_shutdown<std::net::SocketAddr, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>>::{closure#0}]> as std::future::Future>::Output {std::result::Result::<<futures_util::future::future::Map<hyper::server::shutdown::Graceful<hyper::server::tcp::AddrIncoming, hyper::service::make::MakeServiceFn<[closure@warp::server::Server<warp::filter::recover::Recover<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::asset::index}>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::index}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::config}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::LoginParams>::{closure#0}]>>, fn(std::option::Option<std::string::String>, blog_common::dto::user::LoginParams) -> impl std::future::Future {blog_backend::facade::user::login}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::RegisterParams>::{closure#0}]>>, fn(blog_common::dto::user::RegisterParams) -> impl std::future::Future {blog_backend::facade::user::register}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::logout}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::info}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::image::verify_image}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u8) -> impl std::future::Future {blog_backend::facade::post::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::tag::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(std::string::String, u8) -> impl std::future::Future {blog_backend::facade::post::list_by_tag}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::post::NewPost>::{closure#0}]>>, fn(std::option::Option<blog_common::dto::user::UserInfo>, blog_common::dto::post::NewPost) -> impl std::future::Future {blog_backend::facade::post::save}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u64>::{closure#0}], (u64,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u64) -> impl std::future::Future {blog_backend::facade::post::show}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filters::multipart::FormOptions>, fn(std::option::Option<blog_common::dto::user::UserInfo>, warp::filters::multipart::FormData) -> impl std::future::Future {blog_backend::facade::image::upload}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::untuple_one::UntupleOne<warp::filter::and_then::AndThen<warp::filter::map_err::MapErr<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::header2<headers::common::content_length::ContentLength>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<headers::common::content_length::ContentLength, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#1}]>>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::aggregate::{closure#0}]>>, fn(std::string::String, std::option::Option<blog_common::dto::user::UserInfo>, hyper::common::buf::BufList<bytes::bytes::Bytes>) -> impl std::future::Future {blog_backend::facade::image::save::<hyper::common::buf::BufList<bytes::bytes::Bytes>>}>>>, fn(warp::reject::Rejection) -> impl std::future::Future {blog_backend::facade::handle_rejection}>>::bind_with_graceful_shutdown<std::net::SocketAddr, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>>::{closure#1}::{closure#0}]>, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>, hyper::common::exec::Exec>, [closure@warp::server::Server<warp::filter::recover::Recover<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::asset::index}>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::index}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::management::config}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::LoginParams>::{closure#0}]>>, fn(std::option::Option<std::string::String>, blog_common::dto::user::LoginParams) -> impl std::future::Future {blog_backend::facade::user::login}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::user::RegisterParams>::{closure#0}]>>, fn(blog_common::dto::user::RegisterParams) -> impl std::future::Future {blog_backend::facade::user::register}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::logout}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::user::info}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>>, fn(std::option::Option<std::string::String>) -> impl std::future::Future {blog_backend::facade::image::verify_image}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u8) -> impl std::future::Future {blog_backend::facade::post::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn() -> impl std::future::Future {blog_backend::facade::tag::list}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u8>::{closure#0}], (u8,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(std::string::String, u8) -> impl std::future::Future {blog_backend::facade::post::list_by_tag}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::body::is_content_type<warp::filters::body::Json>::{closure#0}]>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::bytes::{closure#0}]>>, [closure@warp::filters::body::json<blog_common::dto::post::NewPost>::{closure#0}]>>, fn(std::option::Option<blog_common::dto::user::UserInfo>, blog_common::dto::post::NewPost) -> impl std::future::Future {blog_backend::facade::post::save}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<u64>::{closure#0}], (u64,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, fn(u64) -> impl std::future::Future {blog_backend::facade::post::show}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filters::multipart::FormOptions>, fn(std::option::Option<blog_common::dto::user::UserInfo>, warp::filters::multipart::FormData) -> impl std::future::Future {blog_backend::facade::image::upload}>>, warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::post::{closure#0}]>::{closure#0}]>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filters::path::Exact<warp::filters::path::internal::Opaque<&str>>>, warp::filter::FilterFn<[closure@warp::filters::path::filter_segment<[closure@warp::filters::path::param<std::string::String>::{closure#0}], (std::string::String,)>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filters::path::end::{closure#0}]>>, warp::filter::untuple_one::UntupleOne<warp::filter::and_then::AndThen<warp::filter::map_err::MapErr<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::header2<headers::common::content_length::ContentLength>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<headers::common::content_length::ContentLength, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#0}]>, [closure@warp::filters::body::content_length_limit::{closure#1}]>>>, warp::filter::map::Map<warp::filter::map::Map<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::cookie::Cookie>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::cookie::Cookie>, std::convert::Infallible>>>::{closure#0}]>, [closure@warp::filters::cookie::optional<std::string::String>::{closure#0}]>, [closure@blog_backend::service::server::auth::{closure#0}]>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::body::body::{closure#0}], futures_util::future::ready::Ready<std::result::Result<hyper::body::body::Body, warp::reject::Rejection>>>::{closure#0}]>, [closure@warp::filters::body::aggregate::{closure#0}]>>, fn(std::string::String, std::option::Option<blog_common::dto::user::UserInfo>, hyper::common::buf::BufList<bytes::bytes::Bytes>) -> impl std::future::Future {blog_backend::facade::image::save::<hyper::common::buf::BufList<bytes::bytes::Bytes>>}>>>, fn(warp::reject::Rejection) -> impl std::future::Future {blog_backend::facade::handle_rejection}>>::bind_with_graceful_shutdown<std::net::SocketAddr, std::future::from_generator::GenFuture<[static generator@blog_backend::service::server::create_warp_server::{closure#0}::{closure#0} {std::future::ResumeTy, tokio::sync::oneshot::Receiver<()>, ()}]>>::{closure#0}]> as std::future::Future>::Output, ()>::expect}`
#3 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
warning: 1 warning emitted
error: could not compile `blog-backend`
Backtrace
Same as above output