Clonable struct and Arc field



struct MyStruct {
    field: Arc<MyType>

what is the difference between:
let varc : Arc<MyStruct> and let v: MyStruct

when we call varc.clone() and v.clone() ?

I'm wondering if I need to Arc MyStruct in order to share it

The very point of Arc is to provide shared ownership and cheap cloneability for types that are expensive or impossible to clone. You don't need to wrap stuff in two layers of Arc.

1 Like