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

import("//third_party/flatbuffers/flatbuffer.gni")

visibility = [
  "//peridot/bin/*",
  "//peridot/lib/*",
  "//src/ledger/*",
]

source_set("convert") {
  sources = [
    "convert.cc",
    "convert.h",
  ]

  public_deps = [
    "//sdk/lib/fidl/cpp",
    "//src/lib/fxl",
    "//third_party/flatbuffers",
    "//third_party/leveldb",
    "//third_party/rapidjson",
    "//zircon/public/lib/zx",
  ]
}

flatbuffer("byte_storage_test") {
  testonly = true

  sources = [
    "bytes_test.fbs",
  ]
}

source_set("unittests") {
  testonly = true

  sources = [
    "collection_view_unittest.cc",
    "convert_unittest.cc",
  ]

  deps = [
    ":byte_storage_test",
    ":convert",
    "//third_party/googletest:gtest",
  ]
}
