Structures And Enums
Structures
Structures are the main tool for linking datasets.
Deen compiler allows you to define your own structures with your own methods.
Syntax
Definition Syntax:
deen
pub/NOTHING struct identifier {
field: type,
...,
fn identifier ( param: type, ... ) type/NOTHING {
// code
}
}
Usage Syntax:
deen
// initialization
identifier { .field = value, ... }
// field get
identifier.field
// method call
identifier.method( param, ... )
Examples
deen
struct Person {
age: u32,
fn new(age: u32) Person {
return Person { .age = age };
}
fn birthday(&self) {
self.age += 1;
println!("Happy Birthday!");
}
}
fn main() i32 {
let person = Person.new(25);
person.birthday();
println!("Current age: {}", person.age);
return 0;
}
Happy Birthday!
Current age: 26
deen
struct Int {
value: i32,
iterator: i32,
fn new(value: i32) Int {
return Int { .value = value, .iterator = 0 };
}
// reserved functions
fn display(&self) *char {
return format!("{}", self.value);
}
fn iterate(&self) (i32, bool) {
if self.iterator >= self.value {
self.iterator = 0;
return (0, false);
}
let value = self.iterator;
self.iterator += 1;
return (value, true);
}
}
fn main() {
let int = Int.new(5);
println!("Iterating `{}`", int);
for idx = int {
println!("{}", idx);
}
}
Iterating `5`
0
1
2
3
4
Enumerations
Enumeration is a user-defined set of named integer constants.
In Deen, enums are similar to those in the C language.
Syntax
Definition Syntax:
deen
pub/NOTHING enum identifier {
field,
...
}
Usage Syntax:
deen
identifier.field
Examples
deen
enum ABC { A, B, C }
fn main() {
println!("{}", ABC.A);
println!("{}", ABC.B);
println!("{}", ABC.C);
}
0
1
2
deen
enum ABC { A, B, C }
fn main() {
let a = ABC.A;
let b = ABC.A;
println!("a == b: {}" a == b);
}
a == b: true