erg/crates/erg_compiler/lib/std/abc.er
2023-05-04 12:30:40 +09:00

11 lines
577 B
Python

.Container = Trait { .__contains__ = (self: Self) -> Bool }
.Hashable = Trait { .__hash__ = (self: Self) -> Nat }
.Sized = Trait { .__len__ = (self: Self) -> Nat }
# TODO: varargs
.Callable = Trait { .__call__ = (self: Self) -> Obj }
.Iterator T = Trait { .__next__ = (self: Self) -> T }
.Iterable T = Trait { .__iter__ = (self: Self) -> .Iterator(T) }
.Collection T = Subsume .Container and .Iterable(T)
.Reversible T = Trait { .__reversed__ = (self: Self) -> .Iterator(T) }
.Genertor T = Subsume .Iterator T
.Sequence T = Subsume .Collection(T) and .Sized and .Reversible(T)