idlize

Форк
0
55 строк · 1.4 Кб
1
/*
2
 * Copyright (c) 2022-2023 Huawei Device Co., Ltd.
3
 * Licensed under the Apache License, Version 2.0 (the "License");
4
 * you may not use this file except in compliance with the License.
5
 * You may obtain a copy of the License at
6
 *
7
 * http://www.apache.org/licenses/LICENSE-2.0
8
 *
9
 * Unless required by applicable law or agreed to in writing, software
10
 * distributed under the License is distributed on an "AS IS" BASIS,
11
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
 * See the License for the specific language governing permissions and
13
 * limitations under the License.
14
 */
15

16
import { log } from "./util.test"
17

18
export class Node {
19
}
20

21
export class MutableState<T> {
22
    constructor(public value: T) {
23
        this.value = value
24
    }
25
}
26

27
export function __context(): Context {
28
    throw "__context() should not be called"
29
}
30

31
export function __id<Key>(): Key {
32
    throw "__id() should not be called"
33
}
34

35
export class Scope<T> {
36
    param<T>(index: number, value: T): MutableState<T> {
37
        return new MutableState(value)
38
    }
39
    recache<T>(value: T) { return value }
40
    get cached() {
41
        throw new Error("")
42
    }
43
    unchanged = false
44
}
45
export class Context {
46
    scope<T>(id: Key, paramCount: number = 0): Scope<T> { return new Scope<T>() }
47
    compute<T>(id: Key, lambda: () => T): T {
48
        return lambda()
49
    }
50
}
51

52
export type Key = string
53

54
export type __memo_context_type = Context
55
export type __memo_id_type = Key
56

57

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.