aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/util/rust-optional.h
diff options
context:
space:
mode:
authorOwen Avery <powerboat9.gamer@gmail.com>2023-05-19 13:15:34 -0400
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 18:37:21 +0100
commit014dd0304d9d2f0f32a390226470be4a876e903c (patch)
treec2736b975e7a638766d1efb9a4264c7e75f8cedf /gcc/rust/util/rust-optional.h
parentefc6c1aa3c8e78e69b96ac0240b3fb46ce8e284e (diff)
downloadgcc-014dd0304d9d2f0f32a390226470be4a876e903c.zip
gcc-014dd0304d9d2f0f32a390226470be4a876e903c.tar.gz
gcc-014dd0304d9d2f0f32a390226470be4a876e903c.tar.bz2
gccrs: Add operator== for Optional.
gcc/rust/ChangeLog: * util/rust-optional.h (operator==): New for Optional<T> == Optional<U>. Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
Diffstat (limited to 'gcc/rust/util/rust-optional.h')
-rw-r--r--gcc/rust/util/rust-optional.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/rust/util/rust-optional.h b/gcc/rust/util/rust-optional.h
index 66730bd..30880cd 100644
--- a/gcc/rust/util/rust-optional.h
+++ b/gcc/rust/util/rust-optional.h
@@ -250,6 +250,16 @@ public:
}
};
+template <typename T, typename U>
+bool
+operator== (const Optional<T> &t, const Optional<U> &u)
+{
+ if (t.is_some ())
+ return u.is_some () && t.get () == u.get ();
+ else
+ return u.is_none ();
+}
+
} // namespace Rust
namespace std {