From 846347b4dc70c599fb16c2e01b163f15602aaa09 Mon Sep 17 00:00:00 2001 From: Tyge Løvset <60263450+tylo-work@users.noreply.github.com> Date: Sun, 26 Apr 2020 23:41:47 +0200 Subject: Update advanced_example.md --- advanced_example.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/advanced_example.md b/advanced_example.md index 7771b3c9..ff93c4c9 100644 --- a/advanced_example.md +++ b/advanced_example.md @@ -35,17 +35,20 @@ struct PersonView { const char* surname; int age; }; + struct PersonView person_getView(struct Person* p) { return (struct PersonView) {p->name.str, p->surname.str, p->age}; } + struct Person person_fromView(struct PersonView pv) { return (struct Person) {cstring_make(pv.name), cstring_make(pv.surname), pv.age}; } + int personview_compare(const struct PersonView* x, const struct PersonView* y) { int c; c = strcmp(x->name, y->name); if (c != 0) return c; c = strcmp(x->surname, y->surname); if (c != 0) return c; - return memcmp(&x->age, &y->age, sizeof(x->age)); + return x->age - y->age; } ``` And a hash function that combines the three member's hashes: -- cgit v1.2.3