diff --git a/src/mol-util/value-cell.ts b/src/mol-util/value-cell.ts index 04cff13b4a28650589b2d493a1552197742007be..92cdc68eadfceccb7bfa74c7268b8c37a4feb072 100644 --- a/src/mol-util/value-cell.ts +++ b/src/mol-util/value-cell.ts @@ -5,11 +5,11 @@ */ /** A mutable value reference. */ -interface ValueRef<T> { value: T } +interface ValueRef<T> { ref: T } namespace ValueRef { - export function create<T>(value: T): ValueRef<T> { return { value }; } - export function update<T>(cell: ValueRef<T>, value: T) { cell.value = value; return cell; } + export function create<T>(ref: T): ValueRef<T> { return { ref }; } + export function set<T>(ref: ValueRef<T>, value: T) { ref.ref = value; return ref; } } let _valueBoxId = 0; @@ -50,10 +50,12 @@ namespace ValueCell { /** If diffInfo is not specified, copy the old value */ export function update<T, D>(cell: ValueCell<T, D>, value: T): ValueCell<T, D> { - ValueRef.update(cell, ValueBox.withValue(cell.value, value)); - return cell; + return ValueRef.set(cell, ValueBox.withValue(cell.ref, value)); } -} -export { ValueRef, ValueBox, ValueCell }; + export function set<T, D>(cell: ValueCell<T, D>, box: ValueBox<T, D>): ValueCell<T, D> { + return ValueRef.set(cell, box); + } +} +export { ValueRef, ValueBox, ValueCell }; \ No newline at end of file