pub fn greeting() -> Unit {
println(@lib.hello())
}
pub(all) struct Student {
id:String
score:Double
}
pub(all) enum ExamResult{
Pass
Fail
}
pub fn is_qualified(student:Student, criteria:Double)->ExamResult{
if student.score >= criteria{
Pass
}else{
Fail
}
}
pub fn count_qualified_student(
students : Array[Student],
is_qualified : (Student)->ExamResult
)->Int{
let mut count = 0
for student in students{
if is_qualified(student) == Pass {count +=1}
}
count
}
impl Eq for ExamResult with op_equal(self,other){
match (self,other){
(Pass , Pass) | (Fail , Fail) => true
_=>false
}
}