func _casObj(obj *rtc.Obj, fields []Any, offset int64, expected, newVal *rtc.Obj) bool { // todo obj.LockState() defer obj.UnlockState() current := _getObj(fields, offset) if current == expected { fields[offset] = newVal return true } else { return false } }