summaryrefslogtreecommitdiffstats
path: root/vendor/derive_more/tests/unwrap.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:21 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:18:21 +0000
commit4e8199b572f2035b7749cba276ece3a26630d23e (patch)
treef09feeed6a0fe39d027b1908aa63ea6b35e4b631 /vendor/derive_more/tests/unwrap.rs
parentAdding upstream version 1.66.0+dfsg1. (diff)
downloadrustc-4e8199b572f2035b7749cba276ece3a26630d23e.tar.xz
rustc-4e8199b572f2035b7749cba276ece3a26630d23e.zip
Adding upstream version 1.67.1+dfsg1.upstream/1.67.1+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'vendor/derive_more/tests/unwrap.rs')
-rw-r--r--vendor/derive_more/tests/unwrap.rs62
1 files changed, 62 insertions, 0 deletions
diff --git a/vendor/derive_more/tests/unwrap.rs b/vendor/derive_more/tests/unwrap.rs
new file mode 100644
index 000000000..ec84f7de9
--- /dev/null
+++ b/vendor/derive_more/tests/unwrap.rs
@@ -0,0 +1,62 @@
+#![allow(dead_code)]
+
+#[macro_use]
+extern crate derive_more;
+
+#[derive(Unwrap)]
+enum Either<TLeft, TRight> {
+ Left(TLeft),
+ Right(TRight),
+}
+
+#[derive(Unwrap)]
+enum Maybe<T> {
+ Nothing,
+ Just(T),
+}
+
+#[derive(Unwrap)]
+enum Color {
+ RGB(u8, u8, u8),
+ CMYK(u8, u8, u8, u8),
+}
+
+#[derive(Unwrap)]
+enum Nonsense<'a, T> {
+ Ref(&'a T),
+ NoRef,
+ #[unwrap(ignore)]
+ NoRefIgnored,
+}
+
+#[derive(Unwrap)]
+enum WithConstraints<T>
+where
+ T: Copy,
+{
+ One(T),
+ Two,
+}
+#[derive(Unwrap)]
+enum KitchenSink<'a, 'b, T1: Copy, T2: Clone>
+where
+ T2: Into<T1> + 'b,
+{
+ Left(&'a T1),
+ Right(&'b T2),
+ OwnBoth(T1, T2),
+ Empty,
+ NeverMind(),
+ NothingToSeeHere(),
+}
+
+#[test]
+pub fn test_unwrap() {
+ assert_eq!(Maybe::<()>::Nothing.unwrap_nothing(), ());
+}
+
+#[test]
+#[should_panic]
+pub fn test_unwrap_panic() {
+ Maybe::<()>::Nothing.unwrap_just()
+}