Releases: Seelengrab/RequiredInterfaces.jl
Releases · Seelengrab/RequiredInterfaces.jl
Release list
v0.1.6
New features:
- The
MIMEstring macro commonly used inBase.showsignatures is now supported. E.g.@required MyInterface Base.show(::IO, ::MIME"text/plain", ::MyInterface)works as expected now, and designates that types implementingMyInterfacemust implement ashowmethod forMIME"text/plain".
Bug fixes:
- None
Full Changelog: v0.1.5...v0.1.6
v0.1.5
New features:
- None
Bug fixes:
- Previously, trying to require a parametric type that wasn't the interface type in a function errored
- Previously, adding more distinct specializations to a function that already fulfilled the interface caused an error, falsely claiming that the interface wasn't fully implemented. Now, as long as a fully-formed fallback definition is found, these will not cause an error anymore.
Full Changelog: v0.1.4...v0.1.5
v0.1.4
New Features:
getInterfacenow lazily computes its result- Function signatures in
@requiredcan now useType{MyInterface}to signal that subtypes ofMyInterfaceshould accept their own type in that position (#13) @requirednow supports callable structs (#11)
Bug fixes:
check_interface_implementedcan now correctly check for inherited interfaces (#6)- Equality & hashing of interfaces now respects a different number of required methods (#12)
- Equality testing of interfaces now correctly works on all supported versions
@requirednow correctly takes in function requirements with qualified names such asBase.sizeorBase.getindex
Full Changelog: v0.1.3...v0.1.4
v0.1.3
- Fix an issue with overwriting method definitions -- #2
- Better support for having interfaces spanning multiple functions -- #1
- Add support for Julia versions 1.6, 1.7, 1.8 -- #3
Full Changelog: v0.1.2...v0.1.3
v0.1.2
This is the initial release for RequiredInterfaces.jl 🎉