#![cfg_attr(docsrs, feature(doc_cfg))]
#[cfg(feature = "atomic-ops")]
#[cfg_attr(docsrs, doc(cfg(feature = "atomic-ops")))]
pub mod atomic;
pub mod error;
pub mod extract;
pub mod normalize;
pub mod pagination;
pub mod relationship;
pub mod request_id;
pub mod response;
#[cfg(any(test, feature = "testing"))]
#[cfg_attr(docsrs, doc(cfg(feature = "testing")))]
pub mod testing;
#[cfg(feature = "validator")]
#[cfg_attr(docsrs, doc(cfg(feature = "validator")))]
pub mod validation;
#[cfg(feature = "atomic-ops")]
#[cfg_attr(docsrs, doc(cfg(feature = "atomic-ops")))]
pub use atomic::AtomicJsonApiResponse;
pub use error::{IntoJsonApiError, JsonApiError, ResultExt};
pub use extract::{BaseUrl, JsonApi, JsonApiQuery, JsonApiQueryValidated, NegotiatedMediaType};
pub use normalize::{NormalizeErrorsLayer, NormalizeErrorsService, not_found};
pub use pagination::{pagination_links, pagination_links_with_base};
pub use relationship::{JsonApiToMany, JsonApiToOne, RelationshipResponse};
pub use request_id::{RequestId, RequestIdLayer, RequestIdService};
pub use response::JsonApiResponse;
#[cfg(feature = "validator")]
#[cfg_attr(docsrs, doc(cfg(feature = "validator")))]
pub use validation::from_validation_errors;
pub use jsonapi_http::{AcceptLayer, ContentTypeLayer, JsonApiLayer};
pub use jsonapi_http::{ApiErrorExt, ApiErrors, with_status};
pub use jsonapi_http::ClientIdPolicy;
pub use jsonapi_http::{IncludeResolver, resolve_includes};
pub use jsonapi_core::{
ApiError, CURSOR_PAGINATION_PROFILE, CursorLinks, CursorPage, Document, DocumentBuilder, Field,
JsonApiMediaType, OffsetPage, PageNumberPage, PageWindow, Query, Relationship, Resource,
SortField, TypeRegistry,
};
pub use jsonapi_core;