loong_contracts/namespace.rs
1use std::collections::BTreeSet;
2
3use serde::{Deserialize, Serialize};
4
5use crate::contracts::{Capability, ExecutionRoute};
6
7/// Runtime projection of a `VerticalPackManifest`.
8///
9/// Created when a pack is registered. Holds resolved runtime state
10/// derived from the declarative manifest. The membrane field provides
11/// a namespace isolation tag (defaults to pack_id).
12#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
13pub struct Namespace {
14 pub pack_id: String,
15 pub domain: String,
16 pub membrane: String,
17 pub default_route: ExecutionRoute,
18 pub granted_capabilities: BTreeSet<Capability>,
19}