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

// The inspect package provides an API for high-performance metrics, exposed as a tree of
// nodes through a shared memory segment. An overview of Fuchsia Component Inspection is
// available at https://fuchsia.dev/fuchsia-src/development/inspect.
package inspect
