// Copyright 2019 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.
library fuchsia.diagnostics;

/// Enum used to specify the output format for
/// Reader results.
// TODO(https://fxbug.dev/42055808): Change this from `strict` to `flexible`. #strictaudit
type Format = strict enum {
    /// Dump read results per the Diagnostics Json
    /// Schema specifications.
    JSON = 1;
    /// Dump read results per the Iquery text specifications.
    TEXT = 2;
    /// Dump read results per the Diagnostics CBOR
    /// Schema specifications.
    @available(added=HEAD)
    CBOR = 3;
};
