1pub mod browsable_api;
35pub mod filters;
36pub mod metadata;
37pub mod serializers;
38pub mod throttling;
39pub mod versioning;
40
41#[cfg(feature = "parsers")]
46pub use reinhardt_core::parsers;
47
48pub use reinhardt_core::negotiation;
50pub use reinhardt_core::pagination;
51
52pub mod authentication;
54pub mod response;
55#[cfg(feature = "openapi")]
59pub mod schema;
60
61pub use authentication::{
63 AllowAny, AnonymousUser, AuthBackend, AuthResult, IsAdminUser, IsAuthenticated,
64 IsAuthenticatedOrReadOnly, Permission, SimpleUser, User,
65};
66
67#[cfg(feature = "jwt")]
69pub use authentication::{Claims, JwtAuth};
70
71pub use response::{ApiResponse, IntoApiResponse, PaginatedResponse, ResponseBuilder};
73
74pub use crate::browsable_api::*;
76
77#[cfg(feature = "serializers")]
79pub use crate::serializers::{
80 ContentNegotiator, Deserializer, JsonSerializer, ModelSerializer, Serializer, SerializerError,
81 UniqueTogetherValidator, UniqueValidator,
82};
83
84#[cfg(feature = "parsers")]
85pub use reinhardt_core::parsers::{
86 FileUploadParser, FormParser, JSONParser, MediaType, MultiPartParser, ParseError, ParseResult,
87 Parser,
88};
89
90#[cfg(feature = "openapi")]
92pub mod openapi;
93
94#[cfg(feature = "openapi")]
96pub use crate::openapi::{
97 ComponentsExt, EnumSchemaBuilder, EnumTagging, Info, OpenApiSchema, Operation, Parameter,
98 ParameterLocation, PathItem, RequestBody, Response, Schema, SchemaExt, SchemaGenerator,
99 SchemaRegistry, Server, ToSchema,
100};
101
102#[cfg(feature = "openapi")]
104pub use crate::openapi::openapi::{
105 ArrayBuilder, ComponentsBuilder, InfoBuilder, ObjectBuilder, OpenApiBuilder, OperationBuilder,
106 ParameterBuilder, PathItemBuilder, PathsBuilder, RequestBodyBuilder, ResponsesBuilder,
107 ServerBuilder, TagBuilder,
108};
109
110#[cfg(feature = "openapi")]
112pub use crate::openapi::openapi::ResponseBuilder as OpenApiResponseBuilder;
113
114#[cfg(feature = "openapi")]
116pub use crate::openapi::swagger::SwaggerUI;
117
118#[cfg(test)]
119mod tests {
120 #[test]
121 fn test_serializers_module_available() {
122 #[cfg(feature = "serializers")]
123 {
124 use crate::JsonSerializer;
125 use serde::{Deserialize, Serialize};
126
127 #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
128 struct TestData {
129 name: String,
130 }
131
132 let _serializer = JsonSerializer::<TestData>::new();
133 }
134 }
135
136 #[test]
137 fn test_parsers_module_available() {
138 #[cfg(feature = "parsers")]
139 {
140 use crate::JSONParser;
141 let _parser = JSONParser::new();
142 }
143 }
144}