1 | /**
|
---|
2 | * Copyright 2019 The AMP HTML Authors. All Rights Reserved.
|
---|
3 | *
|
---|
4 | * Licensed under the Apache License, Version 2.0 (the "License");
|
---|
5 | * you may not use this file except in compliance with the License.
|
---|
6 | * You may obtain a copy of the License at
|
---|
7 | *
|
---|
8 | * http://www.apache.org/licenses/LICENSE-2.0
|
---|
9 | *
|
---|
10 | * Unless required by applicable law or agreed to in writing, software
|
---|
11 | * distributed under the License is distributed on an "AS IS" BASIS,
|
---|
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
---|
13 | * See the License for the specific language governing permissions and
|
---|
14 | * limitations under the License.
|
---|
15 | */
|
---|
16 | /**
|
---|
17 | * FastStringArray acts like a `Set` (allowing only one occurrence of a string
|
---|
18 | * `key`), but provides the index of the `key` in the backing array.
|
---|
19 | *
|
---|
20 | * This is designed to allow synchronizing a second array with the contents of
|
---|
21 | * the backing array, like how `sourcesContent[i]` is the source content
|
---|
22 | * associated with `source[i]`, and there are never duplicates.
|
---|
23 | */
|
---|
24 | export default class FastStringArray {
|
---|
25 | private indexes;
|
---|
26 | array: ReadonlyArray<string>;
|
---|
27 | constructor();
|
---|
28 | /**
|
---|
29 | * Puts `key` into the backing array, if it is not already present. Returns
|
---|
30 | * the index of the `key` in the backing array.
|
---|
31 | */
|
---|
32 | put(key: string): number;
|
---|
33 | }
|
---|