use ldp_protocol::protocol::ProtocolRegistry;
use ldp_protocol::{register_ldp, LdpAdapterConfig, PayloadMode, SessionConfig};
#[tokio::main]
async fn main() {
println!("=== LDP Quick Start ===\n");
let config = LdpAdapterConfig {
delegate_id: "ldp:delegate:my-orchestrator".into(),
trust_domain: ldp_protocol::types::trust::TrustDomain::default(),
session: SessionConfig {
preferred_payload_modes: vec![PayloadMode::SemanticFrame, PayloadMode::Text],
ttl_secs: 3600,
required_trust_domain: None,
},
enforce_trust_domains: false,
attach_provenance: true,
signing_secret: None,
};
println!("Config: delegate_id={}", config.delegate_id);
println!(
" payload modes: {:?}",
config.session.preferred_payload_modes
);
println!(" trust enforcement: {}", config.enforce_trust_domains);
println!(" attach provenance: {}", config.attach_provenance);
let mut registry = ProtocolRegistry::new();
register_ldp(&mut registry, Some(config));
println!("\nRegistered protocols: {:?}", registry.protocols());
println!(
" ldp:// adapter: {}",
registry.adapter_for_url("ldp://localhost:8090").is_some()
);
println!("\nUse the adapter via the registry:");
println!(" registry.adapter_for_url(\"ldp://...\").unwrap().discover(url).await");
println!(" registry.adapter_for_url(\"ldp://...\").unwrap().invoke(url, task).await");
println!("\n=== Done ===");
}