use crate::{SemanticId, SemanticPackageKind, SemanticPackageOpaqueTerminal, SourceProvenance};
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct OpaqueActionResolution {
pub activation: SemanticId,
pub owner_component: SemanticId,
pub method: SemanticId,
pub method_name: String,
pub package_specifier: String,
pub export_name: String,
pub outcome: OpaqueActionResolutionOutcome,
pub provenance: SourceProvenance,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum OpaqueActionResolutionOutcome {
UnboundImport {
package: String,
export: String,
},
NonOpaqueBinding {
package: String,
export: String,
kind: SemanticPackageKind,
},
Resolved(OpaqueTerminalBinding),
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct OpaqueTerminalBinding {
pub local_name: String,
pub package: String,
pub version: String,
pub integrity: String,
pub export: String,
pub type_signature: String,
pub runtime_module: String,
pub resume_policy: String,
pub terminal: SemanticPackageOpaqueTerminal,
}