// Copyright 2022 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 examples.gizmo;

@discoverable
protocol TestingProtocol {
    Get();
};

service Service {
  testing client_end:TestingProtocol;
};
