idlize

Форк
0
47 строк · 1.5 Кб
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
import { log } from "./util.test";
16
export class Node {
17
}
18
export class MutableState<T> {
19
    constructor(public value: T) {
20
        this.value = value;
21
    }
22
}
23
export function __context(): Context {
24
    throw "__context() should not be called";
25
}
26
export function __id<Key>(): Key {
27
    throw "__id() should not be called";
28
}
29
export class Scope<T> {
30
    param<T>(index: number, value: T): MutableState<T> {
31
        return new MutableState(value);
32
    }
33
    recache<T>(value: T) { return value; }
34
    get cached() {
35
        throw new Error("");
36
    }
37
    unchanged = false;
38
}
39
export class Context {
40
    scope<T>(id: Key, paramCount: number = 0): Scope<T> { return new Scope<T>(); }
41
    compute<T>(id: Key, lambda: () => T): T {
42
        return lambda();
43
    }
44
}
45
export type Key = string;
46
export type __memo_context_type = Context;
47
export type __memo_id_type = Key;
48

49

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

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

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

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