blob: 68e914a5502a5c9272f87ac27980fefe3f984d52 [file] [log] [blame]
// Copyright (C) 2017 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Protos for a data store: a barebone in-memory file system.
//
// A DataStore maintains an association between names and chunks of bytes. It
// can be serialized into a string. Of course, it can be deserialized from a
// string, with minimal parsing; after deserialization, all chunks of bytes
// start at aligned addresses (aligned = multiple of an address specified at
// build time).
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package libtextclassifier.nlp_core.memory_image;
// Bytes for a data store entry. They can be stored either directly in the
// "data" field, or in the DataBlob with the 0-based index "blob_index".
message DataStoreEntryBytes {
oneof data {
// Bytes for this data store entry, stored in this message.
string in_place_data = 1;
// 0-based index of the data blob with bytes for this data store entry. In
// this case, the actual bytes are stored outside this message; the
// DataStore code handles the association.
int32 blob_index = 2 [default = -1];
}
}
message DataStoreProto {
map<string, DataStoreEntryBytes> entries = 1;
}