use educe::Educe;
use std::fmt::{self, Debug};
+use std::sync::Arc;
trait Object {}
-trait ClientSideDb {}
-
-use std::sync::Arc;
-use Arc as DbPtr;
-use Arc as ClientDb;
impl Object for NotDebug {}
-impl ClientSideDb for NotDebug {}
#[derive(Educe)]
-//#[educe(Clone, Debug(bound(T: Debug)))]
-#[educe(Clone, Debug)]
-pub struct Obj<T: Object, LocalDb: ClientSideDb> {
- ptr: DbPtr<T>,
+#[educe(Clone, Debug(bound(T: Debug)))]
+//#[educe(Clone, Debug)]
+pub struct Obj<T: Object> {
+ #[educe(Debug(ignore))]
data: Arc<T>,
-
-// #[educe(Debug(ignore))]
- db: Arc<ClientDb<LocalDb>>,
}
#[derive(Clone)]
fn main() {
let a = Obj {
- ptr: Arc::new(NotDebug),
data: Arc::new(NotDebug),
- db: Arc::new(Arc::new(NotDebug)),
};
let a = Clone::clone(&a);
- println!("{:?}", &a);
+// println!("{:?}", &a);
}