#[macro_use] extern crate gotham_derive; #[macro_use] extern crate serde; pub use hyper::StatusCode; use serde::{de::DeserializeOwned, Serialize}; pub use gotham_restful_derive::*; /// Not public API #[doc(hidden)] pub mod export { #[cfg(feature = "openapi")] pub use indexmap::IndexMap; #[cfg(feature = "openapi")] pub use openapiv3 as openapi; } #[cfg(feature = "openapi")] pub mod openapi; #[cfg(feature = "openapi")] pub use openapi::{ router::{GetOpenapi, OpenapiRouter}, types::{OpenapiSchema, OpenapiType} }; mod resource; pub use resource::{ Resource, ResourceReadAll, ResourceRead, ResourceSearch, ResourceCreate, ResourceUpdateAll, ResourceUpdate, ResourceDeleteAll, ResourceDelete }; mod result; pub use result::{ NoContent, ResourceResult, Success }; mod routing; pub use routing::{DrawResources, DrawResourceRoutes}; #[cfg(feature = "openapi")] pub use routing::WithOpenapi; /// A type that can be used inside a request or response body. Implemented for every type /// that is serializable with serde, however, it is recommended to use the rest_struct! /// macro to create one. #[cfg(not(feature = "openapi"))] pub trait ResourceType : DeserializeOwned + Serialize { } #[cfg(not(feature = "openapi"))] impl ResourceType for T { } /// A type that can be used inside a request or response body. Implemented for every type /// that is serializable with serde, however, it is recommended to use the rest_struct! /// macro to create one. #[cfg(feature = "openapi")] pub trait ResourceType : OpenapiType + DeserializeOwned + Serialize { } #[cfg(feature = "openapi")] impl ResourceType for T { }