chiark / gitweb /
demo
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 12 Feb 2024 12:23:22 +0000 (12:23 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 12 Feb 2024 12:23:22 +0000 (12:23 +0000)
src/main.rs

index 092fc9f11b9627996cfb30fd5a2ebdb14606b514..9e6ca48f4f13d8f7ac838d1cd67bb0a2c52fc1e6 100644 (file)
@@ -2,9 +2,18 @@ use educe::Educe;
 
 #[derive(Educe)]
 #[educe(Clone)]
-pub struct Outer<T>(Option<T>);
+pub struct Manual<T> {
+    #[educe(Clone(method = "our_clone"))]
+    field: Option<T>,
+}
+
+fn our_clone<T>(_input: &Option<T>) -> Option<T> {
+    None
+}
 
 fn main() {
-    let a = Outer(Some(42));
+    let a = Manual {
+        field: Some(42),
+    };
     let _ = a.clone();
 }