Include imports in Edge Rust snippets (#2437)

* Allow rust code snippets to start with a comment line

* Include imports in Edge Rust snippets

* Add import per code block; use fqn when class name is ambiguous
This commit is contained in:
Abdon Pijpelink
2026-06-29 15:39:06 +02:00
committed by GitHub
parent 60c789224e
commit 708c40573d
44 changed files with 307 additions and 185 deletions
@@ -1,4 +1,9 @@
```rust
const SHARD_DIRECTORY: &str = "./qdrant-edge-bm25";
use std::path::*;
use qdrant_edge::*;
let config = EdgeConfigBuilder::new()
.sparse_vector("text", EdgeSparseVectorParamsBuilder::new()
.modifier(Modifier::Idf)
@@ -1,4 +1,6 @@
```rust
use qdrant_edge::bm25_embed::*;
let bm25 = EdgeBm25::new(EdgeBm25Config {
language: Some("english".to_string()),
..Default::default()
@@ -1,4 +1,7 @@
```rust
use qdrant_edge::external::serde_json::json;
use qdrant_edge::*;
let docs = [
(1u64, "the quick brown fox", "Article 1"),
(2, "a lazy dog sleeps", "Article 2"),
@@ -1,4 +1,6 @@
```rust
use qdrant_edge::*;
let query_vector = bm25.embed_query("clever fox");
let results = shard.query(QueryRequest {
@@ -1,17 +1,9 @@
```rust
use std::path::Path;
use qdrant_edge::bm25_embed::{EdgeBm25, EdgeBm25Config};
use qdrant_edge::external::serde_json::json;
use qdrant_edge::{
EdgeConfigBuilder, EdgeShard, EdgeSparseVectorParamsBuilder, Modifier,
NamedQuery, PointInsertOperations, PointOperations, PointStruct,
QueryEnum, QueryRequest, ScoringQuery, UpdateOperation,
VectorInternal, Vectors, WithPayloadInterface, WithVector,
};
const SHARD_DIRECTORY: &str = "./qdrant-edge-bm25";
use std::path::*;
use qdrant_edge::*;
let config = EdgeConfigBuilder::new()
.sparse_vector("text", EdgeSparseVectorParamsBuilder::new()
.modifier(Modifier::Idf)
@@ -20,11 +12,16 @@ let config = EdgeConfigBuilder::new()
let shard = EdgeShard::new(Path::new(SHARD_DIRECTORY), config)?;
use qdrant_edge::bm25_embed::*;
let bm25 = EdgeBm25::new(EdgeBm25Config {
language: Some("english".to_string()),
..Default::default()
})?;
use qdrant_edge::external::serde_json::json;
use qdrant_edge::*;
let docs = [
(1u64, "the quick brown fox", "Article 1"),
(2, "a lazy dog sleeps", "Article 2"),
@@ -44,6 +41,8 @@ shard.update(UpdateOperation::PointOperation(
))?;
shard.optimize()?;
use qdrant_edge::*;
let query_vector = bm25.embed_query("clever fox");
let results = shard.query(QueryRequest {
@@ -1,19 +1,11 @@
use std::path::Path;
use qdrant_edge::bm25_embed::{EdgeBm25, EdgeBm25Config};
use qdrant_edge::external::serde_json::json;
use qdrant_edge::{
EdgeConfigBuilder, EdgeShard, EdgeSparseVectorParamsBuilder, Modifier,
NamedQuery, PointInsertOperations, PointOperations, PointStruct,
QueryEnum, QueryRequest, ScoringQuery, UpdateOperation,
VectorInternal, Vectors, WithPayloadInterface, WithVector,
};
// @block-start configure-bm25-shard
pub async fn main() -> anyhow::Result<()> {
const SHARD_DIRECTORY: &str = "./qdrant-edge-bm25";
fs_err::create_dir_all(SHARD_DIRECTORY)?; // @hide
// @block-start configure-bm25-shard
use std::path::*;
use qdrant_edge::*;
let config = EdgeConfigBuilder::new()
.sparse_vector("text", EdgeSparseVectorParamsBuilder::new()
.modifier(Modifier::Idf)
@@ -24,6 +16,8 @@ pub async fn main() -> anyhow::Result<()> {
// @block-end configure-bm25-shard
// @block-start create-bm25
use qdrant_edge::bm25_embed::*;
let bm25 = EdgeBm25::new(EdgeBm25Config {
language: Some("english".to_string()),
..Default::default()
@@ -31,6 +25,9 @@ pub async fn main() -> anyhow::Result<()> {
// @block-end create-bm25
// @block-start embed-and-upsert
use qdrant_edge::external::serde_json::json;
use qdrant_edge::*;
let docs = [
(1u64, "the quick brown fox", "Article 1"),
(2, "a lazy dog sleeps", "Article 2"),
@@ -52,6 +49,8 @@ pub async fn main() -> anyhow::Result<()> {
// @block-end embed-and-upsert
// @block-start query-with-bm25
use qdrant_edge::*;
let query_vector = bm25.embed_query("clever fox");
let results = shard.query(QueryRequest {