All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Add
rename
attribute for renaming struct fields (#209)
- add
#[allow(deprecated)]
attribute to the generated code.
- Bump
syn
to 2.
- Bump
derive_more
to version 1.0.0.
- Bump
proc-macro-crate
to version 3.
- Fix a bug in the
PortableRegistry::retain()
method where recursive types (types containing themselves) were not properly handled.
- Fix a bug in the
PortableRegistry::retain()
method, where a type's id field was not adjusted to the new position of the type in the retainedVec
.
- Implement TypeInfo for
BinaryHeap
(#200).
- Implement
replace_segment
attribute (#197)
- Expose
PortableType
as public (#188)
TypeInfo
is now implemented forArc
(#180)
- Schema generation (#178)
- ty: Make type fields public (#176)
- portable: Retain the provided type IDs (#174)
- Change NonZero* TypeInfo implementation to not be recursive (#171)
Implement the missing pieces for constructing PortableRegistry
dynamically at runtime. This allows languages where static rust types are not available to use it.
The minimum Rust version is bumped to 1.60.0 in this release owing to using weak dependency crate features. Otherwise there are no breaking changes.
- Loosen restriction on
TypeDefBitSequence::new()
so thatbitvec
isn't required, and try to avoid pulling inbitvec
when thestd
feature is enabled (#168)
- Strip invisible delimiters from type name (#156)
- Restore leading
::
for crate access (#152)
- Add ability to reexport crate (#145)
- Allow raw identifiers e.g.
r#mod
(#149)
- Revert bitvec field order to maintain binary compatiblilty
- Upgraded to parity-scale-codec 3.0
- Upgraded to bitvec 1.0
- Minimum Rust version is 1.56.1 for edition 2021
- Replace Range variant with built-in composite definitions (#130)
- Add range getters, combine start and end types (#126)
- Add type parameter getters (#122)
- Add support for Range and RangeInclusive (#124)
- Explicit codec indices for
TypeDef
andTypeDefPrimitive
enums (#127)
- Add capture_docs attribute (#118)
- Allow codec attributes, in case missing Encode/Decode derives (#117)
- Erase PhantomData fields (#111, #115)
- Make variant index explicit, remove discriminant (#112)
- Include type id in serialized type registry (#114)
- Improve docs feature (#116)
- Add index getter to Variant (#110)
- Option constructor macro hygiene (#108)
- Reverted parity-scale-codec prerelease requirement from [0.8.0-rc.1]
- Reexport parity-scale-codec for derive (#106)
- Add
skip_type_params
attribute (#96)
- Bump parity-scale-codec to 2.2.0-rc.2 (#102)
- Handle more SCALE attributes: skip, index (#44)
- Implement
TypeInfo
forBTreeSet
(#85) - Implement
TypeInfo
forCow
(#84) - Implement
TypeInfo
for up to 20 element tuples (#92) - Add
StaticTypeInfo
convenience trait (#91) - Capture doc comments, add variant and field builders (#87)
- Handle
#[codec(index = …)]
in regular enums (#80) - Add new top-level attribute
scale_info(bounds(T: SomeTrait + OtherTrait))
(#88) - (aj-vecdeque) Implement TypeInfo for VecDeque (#99)
- Add BitVec support (#98)
- Add
docs
feature (#101)
- Upgrade proc-macro-crate to v1 (#77)
- Use const generics for array TypeInfo impls (#54)
- Replace NonZeroU32 type lookup ids with u32 (#90)
- Remove HasCompact::Type bounds (#83)
- Unify sequence types (#100)
- Fix serde and decode features without default features (#74)
- Remove type parameter defaults (#71)
- Fix trait bounds for associated types (#76)
- Derive: use known crate name aliases (#61)
- Add a new TypeDef variant to handle PhantomData - (#48)
- TypeInfo for up to 16 tuples, Clone PortableRegistry - (#50)
- Enumerate RegistryReadOnly types, Display Path - (#27)
- Add missing 256 bits types which are needed by Solang - (#25)
- Ensure only static lifetimes appear in derived types - (#39)
- Remove unused function
MetaType::of()
- (#49) - Use PortableRegistry for encoding and serializing - (#40)
- Rename Compact to Portable - (#41)
- Parameterize CompactForm String for optional SCALE impl - (#35)
- Derive TypeInfo for fields with associated types without bounds - (#20)
- Optional serde feature - (#34)
- Consolidate common prelude for std and no_std and usage - (#33)
- Add informational field type name - (#30)
- Unify transparent wrapper types e.g. references - (#26)
- Bump
parity-scale-codec
from 1.0 to 2.0 (#55)
- Fix type name scrubbing to handle nested tuples - (#47)
- Add missing
extern crate proc_macro;
(#22)
- Add public getters for fields in meta type hierarchy (#22)
- Implement SCALE encoding and serde deserialization (#19)
- Remove string table, inline strings (#17)
- First release