Skip to main content

vldb_sqlite/
library.rs

1use serde::Serialize;
2
3/// `vldb-sqlite` 库模式信息对象。
4/// Library-mode metadata object for `vldb-sqlite`.
5#[derive(Debug, Clone, Serialize)]
6pub struct VldbSqliteLibraryInfo {
7    /// 库名称,供宿主与调试输出识别。
8    /// Library name used by hosts and debugging output.
9    pub name: &'static str,
10    /// 库当前版本,对齐 Cargo 包版本。
11    /// Current library version aligned with the Cargo package version.
12    pub version: &'static str,
13    /// 当前 FFI 层阶段说明。
14    /// Current lifecycle stage description for the FFI layer.
15    pub ffi_stage: &'static str,
16    /// 当前导出的能力类别,便于上层探测是否具备库模式。
17    /// Exported capability categories so callers can detect library-mode support.
18    pub capabilities: &'static [&'static str],
19}
20
21/// 返回 `vldb-sqlite` 当前的库模式元信息。
22/// Return the current library-mode metadata for `vldb-sqlite`.
23pub fn library_info() -> VldbSqliteLibraryInfo {
24    VldbSqliteLibraryInfo {
25        name: env!("CARGO_PKG_NAME"),
26        version: env!("CARGO_PKG_VERSION"),
27        ffi_stage: "sqlite-runtime-go-ffi",
28        capabilities: &[
29            "library_info_json",
30            "runtime_create_default",
31            "runtime_open_database",
32            "runtime_close_database",
33            "database_execute_script",
34            "database_execute_batch",
35            "database_query_json",
36            "database_query_stream",
37            "database_tokenize_text",
38            "database_upsert_custom_word",
39            "database_remove_custom_word",
40            "database_list_custom_words",
41            "database_ensure_fts_index",
42            "database_rebuild_fts_index",
43            "database_upsert_fts_document",
44            "database_delete_fts_document",
45            "database_search_fts",
46            "tokenize_text_json",
47            "upsert_custom_word_json",
48            "remove_custom_word_json",
49            "list_custom_words_json",
50            "ensure_fts_index_json",
51            "rebuild_fts_index_json",
52            "upsert_fts_document_json",
53            "delete_fts_document_json",
54            "search_fts_json",
55            "execute_script_json",
56            "execute_batch_json",
57            "query_json_json",
58            "query_stream_json",
59            "query_stream_chunk_json",
60            "query_stream_close_json",
61        ],
62    }
63}