2579
// Deep-copy only the metadata (where physical task statuses live); the Data payload is
2580
// read-only in a snapshot, so share its pointer rather than copying component payloads.
2581
>
clean := &persistencespb.ChasmNode{Metadata: proto.CloneOf(node.GetMetadata()), Data: node.GetData()}
tree.go
2582
>
cleanAttr := clean.GetMetadata().GetComponentAttributes()
2583
>
localState.Nodes[path] = &persistencespb.ChasmNodeLocalState{
2584
>
SideEffectTaskStatuses: extractAndZeroTaskStatuses(cleanAttr.SideEffectTasks),
2585
>
PureTaskStatuses: extractAndZeroTaskStatuses(cleanAttr.PureTasks),
2586
>
}
2587
>
snapshot.Nodes[path] = clean
2588
}
2589
return snapshot, localState