use oxide_agent::mojo::MojoEmbedder;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let embedder = MojoEmbedder::new("/usr/local/bin/mojo-embed");
let texts = vec![
"Rust ownership model".to_string(),
"Python garbage collection".to_string(),
"Go goroutines and channels".to_string(),
];
#[cfg(feature = "mojo-interop")]
{
let embeddings = embedder.embed_batch(texts).await?;
println!("Got {} embedding vectors", embeddings.len());
for (i, emb) in embeddings.iter().enumerate() {
println!(" [{i}] dim={}, first_val={:.4}", emb.len(), emb[0]);
}
}
#[cfg(not(feature = "mojo-interop"))]
{
let err = embedder.embed_batch(texts).await.unwrap_err();
println!("Expected error: {err}");
println!("Enable with: oxide-agent = {{ features = [\"mojo-interop\"] }}");
}
Ok(())
}