diff options
Diffstat (limited to 'documentation/tour/traits.sloth')
| -rw-r--r-- | documentation/tour/traits.sloth | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/documentation/tour/traits.sloth b/documentation/tour/traits.sloth deleted file mode 100644 index 80319de..0000000 --- a/documentation/tour/traits.sloth +++ /dev/null @@ -1,34 +0,0 @@ -# Much like Rust's traits or Haskell's type classes sloth uses a trait system for -# polymorphism. -trait BasicTrait { - fn add() -> i32; -} - -trait AddAssign: Add { - fn add_assign(value: i32, rhs: i32) -> i32; -} - -trait Add { - fn add(lhs: i32, rhs: i32) -> i32; - - default impl AddAssign { - fn add_assign(value: i32, rhs: i32) -> i32 { - return add(value, rhs); - } - } -} - -# In order to make implementing traits easier you can automatically derive traits. -# Types will implicitly derive from Debug, Copy, Eq and Ord if possible. -type Person = { - name: String, - age: i32, - hobbies: Set<String>, -}; - -# You can easily derive from more traits using the `derive` keyword. -type Person derives Serialize, Deserialize = { - name: String, - age: i32, - hobbies: Set<String>, -}; |
