2021-05-29 12:16:03 -06:00
|
|
|
// adds a and b, but also 4 for some reason
|
2021-09-11 12:32:08 -06:00
|
|
|
fn add(a: i64, b: i64): i64 {
|
2021-05-30 09:57:41 -06:00
|
|
|
let foo = 4; // because I feel like it
|
2021-09-11 12:32:08 -06:00
|
|
|
let test_float: f64 = {
|
2021-05-29 11:01:34 -06:00
|
|
|
10.2
|
|
|
|
|
};
|
2021-06-01 23:05:17 -06:00
|
|
|
test_float = 5.0;
|
2021-05-05 19:32:55 -06:00
|
|
|
a + b + foo
|
2020-04-19 22:22:15 -06:00
|
|
|
}
|
|
|
|
|
|
2021-09-11 12:32:08 -06:00
|
|
|
fn subtract(a: i64, b: i64): i64 {
|
2020-04-19 22:22:15 -06:00
|
|
|
a - b
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-11 12:32:08 -06:00
|
|
|
fn return_type_test(a: f64): f64 {
|
2021-05-30 09:57:41 -06:00
|
|
|
return a * 2.0;
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-11 12:32:08 -06:00
|
|
|
fn i_hate_this(a: f64): f64 {
|
2021-05-30 09:57:41 -06:00
|
|
|
return {
|
|
|
|
|
return {
|
|
|
|
|
return a;
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
2021-05-30 10:02:58 -06:00
|
|
|
fn unit_function() {
|
2021-09-11 12:32:08 -06:00
|
|
|
let a: i64 = 4;
|
2021-05-30 10:02:58 -06:00
|
|
|
}
|
|
|
|
|
|
2021-06-12 10:59:58 -06:00
|
|
|
fn returns_user(): User {
|
|
|
|
|
return User{
|
|
|
|
|
id: 4,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-11 12:32:08 -06:00
|
|
|
fn get_user_id(): i64 {
|
2021-06-12 12:26:53 -06:00
|
|
|
let user = returns_user();
|
2021-06-12 12:47:10 -06:00
|
|
|
user.id = 5;
|
2021-06-12 12:26:53 -06:00
|
|
|
return user.id;
|
2020-04-19 22:22:15 -06:00
|
|
|
}
|
2021-06-11 20:59:51 -06:00
|
|
|
|
2021-09-11 12:32:08 -06:00
|
|
|
fn use_method(user: User): i64 {
|
2021-06-26 17:47:52 -06:00
|
|
|
return user.get_id();
|
|
|
|
|
}
|
|
|
|
|
|
2021-06-11 20:59:51 -06:00
|
|
|
type User struct {
|
2021-09-11 12:32:08 -06:00
|
|
|
id: i64,
|
2021-06-11 20:59:51 -06:00
|
|
|
}
|
2021-06-13 10:38:13 -06:00
|
|
|
|
|
|
|
|
impl User {
|
2021-09-11 12:32:08 -06:00
|
|
|
fn new(id: i64): Self {
|
2021-06-13 10:38:13 -06:00
|
|
|
return Self{
|
|
|
|
|
id: id,
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-11 12:32:08 -06:00
|
|
|
fn get_id(self: Self): i64 {
|
2021-06-13 10:38:13 -06:00
|
|
|
return self.id;
|
|
|
|
|
}
|
|
|
|
|
}
|
2021-07-17 15:40:22 -06:00
|
|
|
|
2021-09-14 21:15:39 -06:00
|
|
|
fn if_expression(): i64 {
|
|
|
|
|
if (true) {
|
|
|
|
|
return 6;
|
|
|
|
|
} else {
|
|
|
|
|
return 9;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-12 23:16:36 -06:00
|
|
|
fn main(): i64 {
|
2021-09-25 12:40:49 -06:00
|
|
|
let a = User{id: 4};
|
|
|
|
|
let b = a.instance_method();
|
|
|
|
|
b
|
2021-09-12 23:16:36 -06:00
|
|
|
}
|
|
|
|
|
|
2021-09-25 11:45:31 -06:00
|
|
|
type TestTrait trait {
|
|
|
|
|
fn class_method(id: i64): Self;
|
|
|
|
|
fn instance_method(self: Self): i64;
|
|
|
|
|
fn default_impl(self: Self): i64 {
|
|
|
|
|
return self.instance_method();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl TestTrait for User {
|
|
|
|
|
fn class_method(id: i64): Self {
|
|
|
|
|
return User{id: id,};
|
|
|
|
|
}
|
|
|
|
|
fn instance_method(self: Self): i64 {
|
|
|
|
|
return self.get_id();
|
|
|
|
|
}
|
|
|
|
|
}
|