Andre Popovitch
13ffa14d1f
Fix clippy lints
2025-01-13 10:22:16 +00:00
Graham Esau
95023c2ab0
Avoid inlining schemas in internally-tagged enum newtype variants ( #355 )
...
Schemas are still inlined in some cases, e.g. when the inner type has `deny_unknown_fields`, because then `$ref` would cause an unsatisfiable schema due to the variant tag not being allowed
2024-11-25 10:26:37 +00:00
Graham Esau
e5168819a4
Allow example
attribute value to be any expression ( #354 )
2024-11-20 22:18:31 +00:00
Graham Esau
a479e6cc0e
Improvements to test coverage ( #340 )
...
This increases msrv to 1.70
2024-09-16 10:06:22 +01:00
Graham Esau
05325d2b7c
Add Contract
for generating separate serialize/deserialize schemas ( #335 )
2024-09-04 19:41:34 +01:00
Graham Esau
497333e91b
Replace placeholder error message
2024-09-01 11:30:54 +01:00
Graham Esau
5d58a4d3f0
Wrap comment lines at 100 chars
2024-08-30 13:05:33 +01:00
Graham Esau
d6c8b6b022
Fix ui tests in nightly
2024-08-30 11:12:23 +01:00
Graham Esau
9bba81892f
Move private crate exports into _private
module
2024-08-29 19:47:19 +01:00
Graham Esau
9770301218
Read #[garde(...)]
attributes in addition to #[validate(...)]
( #331 )
2024-08-29 17:12:06 +01:00
Graham Esau
56cdd45c5a
Allow validate
(but not schemars
) attributes to have extra values where necessary
2024-08-28 09:59:24 +01:00
Graham Esau
a85f0fc7bc
Rust rustfmt
2024-08-28 09:16:29 +01:00
Graham Esau
d7ff81de96
Fix regex
attribute when it uses dereferencing
2024-08-27 19:26:02 +01:00
Maximilian Güntner
04fa0713da
fix: honor rename_all_fields, add tests ( #304 )
2024-08-27 17:55:21 +01:00
Graham Esau
d07a1be031
Rewrite attribute handling code ( #330 )
2024-08-27 16:50:47 +01:00
Graham Esau
66f17fff0e
Allow regex(path = ...)
value to be a non-string expression ( #328 )
2024-08-24 18:27:27 +01:00
Graham Esau
df06fc5f66
Allow arbitrary expressions in doc/title/description attributes ( #327 )
2024-08-24 14:35:30 +01:00
Graham Esau
8438865588
Disable doctests for derive code snippets
2024-08-21 17:52:56 +01:00
Graham Esau
2914a1b66a
Include derive(JsonSchema)
docs in rustdoc
2024-08-21 17:52:56 +01:00
Graham Esau
b4f214f6dc
Remove usages of gen
identifier ( #323 )
...
`gen` is a reserved keyword in rust 2024, making it very awkward to use as a module/variable name.
2024-08-21 16:15:13 +01:00
Graham Esau
89a34e7a63
Add no_std
support via disabling the new default feature std
( #319 )
2024-08-17 19:46:11 +01:00
Bilal Mahmoud
0af8f50086
Add absolute import for Result
( #307 )
...
This changes it so that the `Result` used in the derived schema code is using the absolute path to the `Result` enum, otherwise type aliases, such as: `error_stack::Result` cannot be used.
2024-08-17 13:28:56 +01:00
Graham Esau
faf15e7859
Merge metadata setters and transform applications if they're both specified
2024-08-12 18:24:38 +01:00
Graham Esau
eb3077742f
Optimise applying metadata
...
This reduces the output MIR size of the example code from https://github.com/GREsau/schemars/issues/246 by ~50% (from 18k to 9k lines)
2024-08-12 18:21:25 +01:00
Graham Esau
14b06e71ba
Add transform = ...
attribute ( #312 )
...
This allows running arbitrary transforms on generated schemas when deriving `JsonSchema`
2024-08-10 09:56:52 +01:00
Graham Esau
ce15380863
Do not collapse newlines in doc comments ( #310 )
2024-08-04 16:43:22 +01:00
Graham Esau
840315b2dd
Add #[schemars(extend("key" = value))]
attribute ( #297 )
2024-06-05 21:09:52 +01:00
Graham Esau
760403e2f5
Update doc comments and make SchemaGenerator
available from crate root
2024-05-27 11:09:15 +01:00
Graham Esau
f8b56cb455
Replace is_referenceable()
with always_inline_schema()
2024-05-26 16:51:42 +01:00
Graham Esau
1aaa162e0b
Make schema_name()
return Cow<'static, str>
instead of String
2024-05-26 15:20:56 +01:00
Graham Esau
3aa0e7fa3c
Support JSON Schema draft 2020-12 and use it by default ( #294 )
2024-05-19 20:49:45 +01:00
Graham Esau
c4d42ec11a
Refactor flatten
and move it to _private
, remove TempFixupForTests
, regenerate test schemas
2024-05-13 22:02:32 +01:00
Graham Esau
18300c67bb
Use const
instead of single-valued enum
( #291 )
2024-05-13 21:30:51 +01:00
Graham Esau
3b3870ca82
Simplify flatten
...
No longer use it for internally-tagged enums. Instead, use a private helper that adds the tag property.
2024-05-13 10:52:42 +01:00
Graham Esau
342cd5fd09
Define Schema
as a newtype around serde_json::Value
( #289 )
2024-05-12 19:23:54 +01:00
Graham Esau
1a40d1b06c
Fix deriving JsonSchema on enum without variants
...
Fixes #287
2024-05-06 18:12:20 +01:00
Graham Esau
d04c17bda4
Simplify generated enum code ( #286 )
...
* simplify the code generated for unit enums
* simplify generated code for validating object properties
* optimize internal and externally tagged enums
---------
Co-authored-by: Robin Appelman <robin@icewind.nl>
2024-05-06 13:54:13 +01:00
Graham Esau
df00e2fd71
Add comment explaining why we double-parse an Expr
2024-04-28 18:59:42 +01:00
Graham Esau
9501fe319f
Update to syn 2 and serde_derive_internals 0.29
2024-04-28 18:56:06 +01:00
Graham Esau
ae9544aaf9
Put schema value into a variable before calling apply_metadata
...
This reduces size of MIR output, which should somewhat mitigate #246
2023-11-11 20:28:10 +00:00
Graham Esau
342b2dff33
Add schema_id(), handles different types with the same name ( #247 )
2023-09-17 20:36:52 +01:00
Jakub Jirutka
a5e51b22b3
Add #[schemars(inner(...)] attribute to specify schema for array items ( #234 )
2023-09-09 13:35:53 +01:00
Graham Esau
37478d764e
Support types with const generics ( #239 )
...
Co-authored-by: Spencer Sharkey <spsharkey@tesla.com>
2023-08-27 20:50:20 +01:00
Graham Esau
072730f6f6
Resolve clippy warnings
2023-08-20 18:14:04 +01:00
Graham Esau
824993ca76
Apply clippy fixes
2023-02-26 19:59:17 +00:00
Graham Esau
39bae201eb
Run cargo fmt
2023-02-26 19:47:10 +00:00
Graham Esau
c59e5b5e1c
Fix test
2022-10-02 19:46:29 +01:00
Graham Esau
4754a13fb3
Ignore bound
set in serde attrs
2022-10-02 19:46:29 +01:00
Graham Esau
104dccca50
Add #[schemars(bound = ...)] attribute
...
Based on https://github.com/GREsau/schemars/pull/162
Co-authored-by: teozkr <teo@nullable.se>
2022-10-02 19:46:29 +01:00
Adam Leventhal
76427ef384
Fix handling of attributes applied to unit variant types ( #152 )
2022-08-12 15:37:34 +01:00