@dstanesc/o-o-o-o-o-o-o
Version:
O-O-O-O-O-O-O is a collection of content addressed persistent data structures
75 lines • 2.44 kB
JavaScript
const fastCloneVertex = (vertex) => {
const clone = { offset: vertex.offset, status: vertex.status };
if (vertex.type !== undefined)
clone.type = vertex.type;
if (vertex.nextEdge !== undefined)
clone.nextEdge = vertex.nextEdge;
if (vertex.nextProp !== undefined)
clone.nextProp = vertex.nextProp;
if (vertex.nextIndex !== undefined)
clone.nextIndex = vertex.nextIndex;
return clone;
};
const fastCloneEdge = (edge) => {
const clone = {
offset: edge.offset,
status: edge.status,
source: edge.source,
target: edge.target,
};
if (edge.type !== undefined)
clone.type = edge.type;
if (edge.sourcePrev !== undefined)
clone.sourcePrev = edge.sourcePrev;
if (edge.sourceNext !== undefined)
clone.sourceNext = edge.sourceNext;
if (edge.targetPrev !== undefined)
clone.targetPrev = edge.targetPrev;
if (edge.targetNext !== undefined)
clone.targetNext = edge.targetNext;
if (edge.nextProp !== undefined)
clone.nextProp = edge.nextProp;
return clone;
};
const fastCloneProp = (prop) => {
const clone = {
offset: prop.offset,
status: prop.status,
key: prop.key,
value: prop.value,
};
if (prop.type !== undefined)
clone.type = prop.type;
if (prop.nextProp !== undefined)
clone.nextProp = prop.nextProp;
return clone;
};
const fastCloneIndex = (index) => {
const clone = {
offset: index.offset,
status: index.status,
key: index.key,
value: index.value,
};
if (index.type !== undefined)
clone.type = index.type;
if (index.nextIndex !== undefined)
clone.nextIndex = index.nextIndex;
return clone;
};
const fastCloneVersionDetails = (versionDetails) => {
const clone = {
timestamp: versionDetails.timestamp,
};
if (versionDetails.author !== undefined)
clone.author = versionDetails.author;
if (versionDetails.comment !== undefined)
clone.comment = versionDetails.comment;
if (versionDetails.signature !== undefined)
clone.signature = versionDetails.signature;
if (versionDetails.tags !== undefined)
clone.tags = versionDetails.tags;
return clone;
};
export { fastCloneVertex, fastCloneEdge, fastCloneProp, fastCloneIndex, fastCloneVersionDetails };
//# sourceMappingURL=clone.js.map