// Copyright 2016 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.sys;

/// An interface for loading from packages.
@discoverable
protocol Loader {
    /// Load a package by url.  The returned `package`'s `data` VMO handle will
    /// not have `ZX_RIGHT_EXECUTE`, but the `directory` field, if present, will
    /// have both the `READABLE` and `EXECUTABLE` rights.
    LoadUrl(struct {
        url component_url;
    }) -> (resource struct {
        package box<Package>;
    });
};
