// Copyright 2018 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.

// NOTE: Importers of this file tend to be private implementations for public
// APIs (e.g, lib.app_driver.dart). It's best to use a pre-defined codec based
// on the type you are working with by importing this package's files for that
// type.
export 'src/entity_codec.dart';
export 'src/string_list_entity_codec.dart';
