Releases: Seelengrab/RequiredInterfaces.jl
Releases · Seelengrab/RequiredInterfaces.jl
v0.1.6
New features:
- The
MIME
string macro commonly used inBase.show
signatures is now supported. E.g.@required MyInterface Base.show(::IO, ::MIME"text/plain", ::MyInterface)
works as expected now, and designates that types implementingMyInterface
must implement ashow
method 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:
getInterface
now lazily computes its result- Function signatures in
@required
can now useType{MyInterface}
to signal that subtypes ofMyInterface
should accept their own type in that position (#13) @required
now supports callable structs (#11)
Bug fixes:
check_interface_implemented
can 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
@required
now correctly takes in function requirements with qualified names such asBase.size
orBase.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 🎉