summaryrefslogtreecommitdiffstats
path: root/intl/icu_capi/js/package/lib/ICU4XCodePointSetBuilder.js
blob: 0b4f7a1751d48a53ec1bdf4a7de5c07df08f8298 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
import wasm from "./diplomat-wasm.mjs"
import * as diplomatRuntime from "./diplomat-runtime.js"
import { ICU4XCodePointSetData } from "./ICU4XCodePointSetData.js"

const ICU4XCodePointSetBuilder_box_destroy_registry = new FinalizationRegistry(underlying => {
  wasm.ICU4XCodePointSetBuilder_destroy(underlying);
});

export class ICU4XCodePointSetBuilder {
  #lifetimeEdges = [];
  constructor(underlying, owned, edges) {
    this.underlying = underlying;
    this.#lifetimeEdges.push(...edges);
    if (owned) {
      ICU4XCodePointSetBuilder_box_destroy_registry.register(this, underlying);
    }
  }

  static create() {
    return new ICU4XCodePointSetBuilder(wasm.ICU4XCodePointSetBuilder_create(), true, []);
  }

  build() {
    return new ICU4XCodePointSetData(wasm.ICU4XCodePointSetBuilder_build(this.underlying), true, []);
  }

  complement() {
    wasm.ICU4XCodePointSetBuilder_complement(this.underlying);
  }

  is_empty() {
    return wasm.ICU4XCodePointSetBuilder_is_empty(this.underlying);
  }

  add_char(arg_ch) {
    wasm.ICU4XCodePointSetBuilder_add_char(this.underlying, diplomatRuntime.extractCodePoint(arg_ch, 'arg_ch'));
  }

  add_u32(arg_ch) {
    wasm.ICU4XCodePointSetBuilder_add_u32(this.underlying, arg_ch);
  }

  add_inclusive_range(arg_start, arg_end) {
    wasm.ICU4XCodePointSetBuilder_add_inclusive_range(this.underlying, diplomatRuntime.extractCodePoint(arg_start, 'arg_start'), diplomatRuntime.extractCodePoint(arg_end, 'arg_end'));
  }

  add_inclusive_range_u32(arg_start, arg_end) {
    wasm.ICU4XCodePointSetBuilder_add_inclusive_range_u32(this.underlying, arg_start, arg_end);
  }

  add_set(arg_data) {
    wasm.ICU4XCodePointSetBuilder_add_set(this.underlying, arg_data.underlying);
  }

  remove_char(arg_ch) {
    wasm.ICU4XCodePointSetBuilder_remove_char(this.underlying, diplomatRuntime.extractCodePoint(arg_ch, 'arg_ch'));
  }

  remove_inclusive_range(arg_start, arg_end) {
    wasm.ICU4XCodePointSetBuilder_remove_inclusive_range(this.underlying, diplomatRuntime.extractCodePoint(arg_start, 'arg_start'), diplomatRuntime.extractCodePoint(arg_end, 'arg_end'));
  }

  remove_set(arg_data) {
    wasm.ICU4XCodePointSetBuilder_remove_set(this.underlying, arg_data.underlying);
  }

  retain_char(arg_ch) {
    wasm.ICU4XCodePointSetBuilder_retain_char(this.underlying, diplomatRuntime.extractCodePoint(arg_ch, 'arg_ch'));
  }

  retain_inclusive_range(arg_start, arg_end) {
    wasm.ICU4XCodePointSetBuilder_retain_inclusive_range(this.underlying, diplomatRuntime.extractCodePoint(arg_start, 'arg_start'), diplomatRuntime.extractCodePoint(arg_end, 'arg_end'));
  }

  retain_set(arg_data) {
    wasm.ICU4XCodePointSetBuilder_retain_set(this.underlying, arg_data.underlying);
  }

  complement_char(arg_ch) {
    wasm.ICU4XCodePointSetBuilder_complement_char(this.underlying, diplomatRuntime.extractCodePoint(arg_ch, 'arg_ch'));
  }

  complement_inclusive_range(arg_start, arg_end) {
    wasm.ICU4XCodePointSetBuilder_complement_inclusive_range(this.underlying, diplomatRuntime.extractCodePoint(arg_start, 'arg_start'), diplomatRuntime.extractCodePoint(arg_end, 'arg_end'));
  }

  complement_set(arg_data) {
    wasm.ICU4XCodePointSetBuilder_complement_set(this.underlying, arg_data.underlying);
  }
}