On Sat, Mar 1, 2014 at 9:07 PM, Niko Matsakis <n...@alum.mit.edu> wrote:

> On Fri, Feb 28, 2014 at 11:23:23PM -0800, Kevin Ballard wrote:
> > I'm also slightly concerned that #[deriving(Data)] gives the
> > impression that there's a trait Data, so maybe that should be
> > lowercased as in #[deriving(data)], or even just
> > #[deriving(builtin)], but this is a lesser concern and somewhat
> > bike-sheddy.
>
> This is definitely bikeshedding, but that's important too. While we're
> bikeshedding, I think we ought to rename the trait `Pod`, which
> doesn't fit into our "verb" scheme:
>
>    Freeze
>    Send
>    Share
>    Pod
>

Yes please. It bothers me to no end when an acronym interacts with our
camel case naming convention to form a word that's valid English and has
nothing at all to do with the original meaning. (The other example is of
course `Arc`.) I actually don't really mind if it's `Copy`, `POD`,
`PlainOldData`... just not `Pod`.



>
> My first thought is to resurrect `Copy`, though of course it's very
> similar to `Clone`. Anyway, let's assume for now we rename `Pod` to `Copy`.
>
> In that case, I think I would have the following "trait sets":
>
>    data = Eq, Ord, Clone, Freeze, Hash, Share <-- Note: not Copy!
>    pod  = data, Copy
>
> The idea is that almost all types (hashtables, etc) can use `data` (in
> particular, `data` is applicable to types with `~` pointers).  Very
> simple types like `Point` can use `pod` (which is, after all, just
> "plain old" data).
>
>
> Niko
> _______________________________________________
> Rust-dev mailing list
> Rust-dev@mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to