Skip to content

Latest commit

 

History

History
135 lines (91 loc) · 5.12 KB

CHANGELOG.adoc

File metadata and controls

135 lines (91 loc) · 5.12 KB

Typify Changelog

Unreleased changes (release date TBD)

0.0.13 (released 2023-05-14)

  • Fixed-length, single-type arrays to [T; N] (#286)

  • Support for reflexive schemas (#292)

  • Much improved support for multi-type schemas (#291)

  • Better error messages on failures

0.0.12 (released 2023-05-03)

  • Improved enum generation (#270)

  • Improved integer type selection based on number criteria (#255)

  • TypeSpace::add_root_schema() (#236)

  • …​ and many general improvements

0.0.11 (released 2023-03-18)

This is a big update with many, many changes to code generation, and many more JSON schema structures well-handled. Among the many changes:

  • Generate a ToString impl for untagged enums with trivial variants (#145)

  • Allow conversion overrides by specifying a schema (#155)

  • Handle untyped enums that contain nulls (#167)

  • Handle not schemas for enumerated values (#168)

  • Improve generated code for FromStr and TryFrom impls (#174)

  • Handle format specifiers for enumerated strings (#188)

Breaking: The removal of TypeSpace::to_string()

Previously all transitive consumers required the presence of rustfmt. In this version we leave formatting to the consumer. See the formatting section of the README for details on formatting.

CLI

This version adds the cargo-typify crate for stand-alone code generation.

Augmented Generation

Consumers can now affect how code is generated in several ways: * adding derive macros to all generated types * modifying specific types by name to rename them or add derive macros * specifying a replacement type by name * specifying a replacement type by schema pattern

  • Allow per-type renames and derive macro applications (#131)

  • ToString implementations for untagged enums with trivial newtype variants (#145)

  • Fixed an issue with generation of enum defaults (#137)

  • Allow conversion overrides by specifying a schema (#155)

0.0.10 (released 2022-09-10)

  • Add support for string types with format set to ip, ipv4, or ipv6 (#76)

  • Be more accommodating in the face of a missing type field #(79)

  • The order of derives on types has stabilized (and therefore has changed) (#81)

  • Specific From and Deserialize implementations for constrainted string types (#81)

  • Specific From implementation for untagged enums with constrained string variants (#81)

  • FromStr implementation for simple-variant-only `enum`s (#81)

  • Ignore unknown format values (#81)

  • Added regress dependency for ECMA 262 style regexes (#81)

  • Dropshot produces a complex Null type (by necessity); now rendered as () (#83)

  • Fixed rendering of enums with a single variant (#87)

  • Updated public interface (breaking for consumers) (#98)

  • Optional builder interface for generated structs (#98)

0.0.9 (released 2022-06-20)

  • Switched from unicode-xid to unicode-ident (#60)

  • Elevate TypeDetail::String rather than TypeDetail::BuiltIn("String") (#72)

0.0.8 (released 2022-05-22)

  • Support for integer schemas with enum_values populated (breaking change) (#57)

  • Deeper inspection of oneOf constructions to make better `enum`s (#59)

  • Simple handling for "constraint" allOf constructions (#59)

  • Improved handling of non-required unit struct members (#59)

0.0.7 (released 2022-05-18)

  • Update to uuid v1.0.0 for testing (non-breaking change)

0.0.6 (released 2022-05-12)

  • Add an interface to allow consumers to specify additional derives for generated types (#35)

  • Handle all invalid identifier characters (#37)

  • Add support for std::net::Ipv6Addr type (#38)

  • Add Copy to simple enums (#40)

  • Box trivial cyclic refs (#41)

  • Move to heck for case conversion (#43)

  • Improve handling of default values for object properties (#44)

0.0.5 (released 2021-11-06)

  • use include_str! so that our macro is re-run if the given file changes (#27)

  • Better handling of enums that look like the Result type (#26)

  • Pass through name for make_map (#25)

0.0.4 (released 2021-11-06)

First published version