- Notifications
You must be signed in to change notification settings - Fork 81
Open
Description
I have a case where to clone structures like Field, I need to have an additional constraint for T to be Clone, which quickly proliferates through the codebase when T is kept generic.
Is there any specific reason for the Text trait not requiring Clone from the get-go? For the implementations defined in the project, it works just fine:
diff --git a/src/common.rs b/src/common.rs index c5189fa..f44b5b2 100644 --- a/src/common.rs +++ b/src/common.rs @@ -11,7 +11,7 @@ use crate::position::Pos; /// Text abstracts over types that hold a string value. /// It is used to make the AST generic over the string type. -pub trait Text<'a>: 'a { +pub trait Text<'a>: 'a + Clone { type Value: 'a + From<&'a str> + AsRef<str> + std::borrow::Borrow<str> + PartialEq + Eq + PartialOrd + Ord + fmt::Debug + Clone; }Is there an anticipation that somebody will use an implementation of Text that is not cloneable?
Metadata
Metadata
Assignees
Labels
No labels