• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2022 Google LLC
2 //
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 //    https://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 package com.google.setfilters.cuckoofilter;
16 
17 import java.util.Arrays;
18 
19 /** Serialization of {@link CuckooFilterTable}. */
20 public final class SerializedCuckooFilterTable {
21   private final byte[] rawSerialization;
22 
23   /** Creates serialization from raw byte array. */
createFromByteArray(byte[] byteArray)24   public static SerializedCuckooFilterTable createFromByteArray(byte[] byteArray) {
25     return new SerializedCuckooFilterTable(Arrays.copyOf(byteArray, byteArray.length));
26   }
27 
SerializedCuckooFilterTable(byte[] rawSerialization)28   private SerializedCuckooFilterTable(byte[] rawSerialization) {
29     this.rawSerialization = rawSerialization;
30   }
31 
32   /** Returns the serialization as a byte array. */
asByteArray()33   public byte[] asByteArray() {
34     return Arrays.copyOf(rawSerialization, rawSerialization.length);
35   }
36 
37   // TODO: Add other methods like asJSON();
38 }
39