// Copyright 2021 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.examples.docs;

using zx;

// [START protocol]
protocol LifeOfAHandle {
    Method(resource struct {
        h zx.handle:<VMO, zx.rights.MAP | zx.rights.READ | zx.rights.WRITE>;
    }) -> ();
};
// [END protocol]
