glassesneo / OOlib

A nimble package for object-oriented programming
Do What The F*ck You Want To Public License
64 stars 4 forks source link

Generate multiple `toProtocol()` for runtime polymorphism instead of `pick` #139

Open glassesneo opened 3 days ago

glassesneo commented 3 days ago
protocol Animal:
  proc eat

protocol CanFly:
  proc fly

class Cat impl Animal:
  proc eat =
    discard
  # automatically defined
  proc toProtocol(): Animal

class Bird impl (Animal, CanFly):
  proc eat =
    discard
  proc fly =
    discard
  # automatically defined
  proc toProtocol(): Animal
  proc toProtocol(): CanFly
  proc toProtocol(): Animal & CanFly
glassesneo commented 3 days ago

converter may be good for it

glassesneo commented 2 days ago

& operator in https://github.com/glassesneo/OOlib/issues/140