6 static bool player_adult(Player *self)
8 return self->age >= 18;
11 static void player_print(Player *self)
13 printf("Name: %s\nAge: %d\n", self->name, self->age);
16 static void player_birthday(Player *self)
21 static int player_compare(Player *other, Player *self)
23 return self->age - other->age;
26 static void player_delete(Player *self)
28 closure_destroy(self->closure);
32 Player *player(char *name)
34 Player *self = malloc(sizeof *self);
38 self->closure = closure_create(self, (ClosureParam[5]) {
39 {&player_adult, &self->adult, 0},
40 {&player_print, &self->print, 0},
41 {&player_birthday, &self->birthday, 0},
42 {&player_compare, &self->compare, 1},
43 {&player_delete, &self->delete, 0},