cadence
cadence copied to clipboard
Interface Implementation Requirements
Description
An earlier version of the language reference specified an unimplemented feature: Interface implementation requirements:
Interfaces can require implementing types to also implement other interfaces of the same kind. Interface implementation requirements can be declared by following the interface name with a colon (
:) and one or more names of interfaces of the same kind, separated by commas.// Declare a structure interface named `Shape`. // pub struct interface Shape {} // Declare a structure interface named `Polygon`. // Require implementing types to also implement the structure interface `Shape`. // pub struct interface Polygon: Shape {} // Declare a structure named `Hexagon` that implements the `Polygon` interface. // This also is required to implement the `Shape` interface, // because the `Polygon` interface requires it. // pub struct Hexagon: Polygon, Shape {}
This feature is needed for the new FT / NFT standards.
cc @joshuahannan @dsainati1
Thank you! I'm excited to have this feature! :)
Added with https://github.com/onflow/cadence/pull/2112
FLIP: https://github.com/onflow/flips/pull/40