// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// Datatypes used in the Machine Learning API.
// This module is derived from the Feature proto definition of TensorFlow.
// See /tensorflow/core/example/feature.proto in the TensorFlow code.

// NOTE: This mojom exists in two places and must be kept in sync:
//       Chromium:  //chromeos/services/machine_learning/public/mojom/
//       Chrome OS: src/platform2/ml/mojom/
// Example: A backwards-compatible mojom change (and corresponding
// implementation change) can be made in Chrome OS first, then replicated to the
// client (Chromium) later.

module chromeos.machine_learning.mojom;

struct StringList {
  array<string> value;
};

struct FloatList {
  array<double> value;
};

struct Int64List {
  array<int64> value;
};

// The union of all supported tensor types. Supporting a new type comprises the
// following:
//  - Adding a new struct above (e.g. BoolList),
//  - Adding this new struct to the union below,
//  - Adding template specializations for the new type to
//    platform2/ml/tensor_view.{h,cc}.
//  - Updating platform2/ml/graph_executor_impl.cc to use a TensorView of the
//    new type.
//
// TODO(chromium:836098): add new types (e.g. uint8, bool) as they become
//                        useful.
union ValueList {
  StringList string_list;
  FloatList float_list;
  Int64List int64_list;
};

// A Tensor is a multi-dimensional array with dimensions |shape|, flattened into
// the one-dimensional array |data|.
// It is used for both the inputs (in the form of a map<string, Tensor>) and
// outputs (in the form of an array<Tensor>) of ML inference.
struct Tensor {
  ValueList data;

  // Each integer is the size of that dimension.
  Int64List shape;
};
