syntax = "proto3";
package smartnoise;
message BoolNull {oneof data {bool option = 1;}}
message I64Null {oneof data {int64 option = 1;}}
message F64Null {oneof data {double option = 1;}}
message StrNull {oneof data {string option = 1;}}
message Array1dBoolNull {
repeated BoolNull data = 1;
}
message Array1dI64Null {
repeated I64Null data = 1;
}
message Array1dF64Null {
repeated F64Null data = 1;
}
message Array1dStrNull {
repeated StrNull data = 1;
}
message Array1dNull {
oneof data {
Array1dBoolNull bool = 1;
Array1dI64Null i64 = 2;
Array1dF64Null f64 = 3;
Array1dStrNull string = 4;
}
}
message Array1dBool {
repeated bool data = 1;
}
message Array1dI64 {
repeated int64 data = 1;
}
message Array1dF64 {
repeated double data = 1;
}
message Array1dStr {
repeated string data = 1;
}
message Array1d {
oneof data {
Array1dBool bool = 1;
Array1dI64 i64 = 2;
Array1dF64 f64 = 3;
Array1dStr string = 4;
}
}
// N-dimensional homogeneously typed array
message Array {
Array1d flattened = 1;
// length of axes
repeated uint64 shape = 2;
}
enum DataType {
UNKNOWN = 0;
BOOL = 1;
I64 = 2;
F64 = 3;
STRING = 4;
}
message Jagged {
repeated Array1d data = 1;
DataType data_type = 2;
}
message PrivacyUsage {
message DistanceApproximate {
double epsilon = 1;
double delta = 2;
}
oneof distance {
DistanceApproximate approximate = 1;
}
}
message PrivacyUsages {
repeated PrivacyUsage values = 1;
}
message ArgumentNodeIds {
repeated IndexKey keys = 1;
repeated uint32 values = 2;
}
message IndexKey {
message Tuple {
repeated IndexKey values = 1;
}
oneof key {
string str = 1;
int64 i64 = 2;
bool bool = 3;
Tuple tuple = 4;
}
}