".github/actions/vscode:/vscode.git/clone" did not exist on "a818a4bdd86756a6c4bad80bb12bbe3137b48402"
traits.rs 933 Bytes
Newer Older
1
2
3
// SPDX-FileCopyrightText: Copyright (c) 2024-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
// SPDX-License-Identifier: Apache-2.0

Ryan Olson's avatar
Ryan Olson committed
4
5
6
pub mod events;

use super::{DistributedRuntime, Runtime};
7
/// A trait for objects that proivde access to the [Runtime]
Ryan Olson's avatar
Ryan Olson committed
8
9
10
11
12
13
14
15
16
17
18
pub trait RuntimeProvider {
    fn rt(&self) -> &Runtime;
}

/// A trait for objects that provide access to the [DistributedRuntime].
pub trait DistributedRuntimeProvider {
    fn drt(&self) -> &DistributedRuntime;
}

impl RuntimeProvider for DistributedRuntime {
    fn rt(&self) -> &Runtime {
19
        self.runtime()
Ryan Olson's avatar
Ryan Olson committed
20
21
    }
}
22

23
24
25
// This implementation allows DistributedRuntime to provide access to itself
// when used in contexts that require DistributedRuntimeProvider.
// Components, Namespaces, and Endpoints use this trait to access their DRT.
26
27
28
29
30
impl DistributedRuntimeProvider for DistributedRuntime {
    fn drt(&self) -> &DistributedRuntime {
        self
    }
}