> or it could be a different crate

FWIW, it can't. Rust enforces that either the trait or the type being impld
come from the current crate (with generics it gets more complicated).


I kinda feel like upgrading HeapSizeOf to have a generic second trait-bound
argument that we substitute MallocSizeOfOps as would be good.


-Manish Goregaokar

On Thu, Oct 5, 2017 at 9:05 PM, Nicholas Nethercote <n.netherc...@gmail.com>
wrote:

> On Fri, Oct 6, 2017 at 2:33 PM, Xidorn Quan <m...@upsuper.org> wrote:
>
> >
> > There are multiple Servo dependencies on crates.io depend on heapsize.
> > [1] How are they handled at the moment? And what would we do to them in
> > the future with the second option?
> >
> > [1] https://crates.io/crates/heapsize/reverse_dependencies
> >
>
> Good question.
>
> There are two ways for the HeapSizeOf trait to be implemented for a type
> Foo.
>
> (1) Foo's crate depends on heapsize, in which case Foo's crate can
> implement HeapSizeOf itself. The crates at that link above (app_units,
> euclid, url) are examples. The advantage of this option is that the
> HeapSizeOf trait can access non-public fields of types.
>
> (2) Foo's crate doesn't depend on heapsize, in which case a different crate
> must implement HeapSizeOf for Foo. This could be the heapsize crate itself
> -- as is done for all the standard types like Vec and HashMap -- or it
> could be a different crate. The advantage of this option is that you don't
> depend on heapsize.
>
> If we went with the second option from my original mail (i.e. stop using
> heapsize) then it would probably make sense to deprecate heapsize entirely,
> stop those crates from depending on it, and implement the MallocSizeOf
> trait for those crates' types within Servo.
>
> Nick
>
>
>
> Nick
> _______________________________________________
> dev-servo mailing list
> dev-servo@lists.mozilla.org
> https://lists.mozilla.org/listinfo/dev-servo
>
_______________________________________________
dev-servo mailing list
dev-servo@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-servo

Reply via email to