pub struct CoreClient { /* private fields */ }Implementations§
Source§impl CoreClient
impl CoreClient
pub async fn insert<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn batch_insert<T: Serialize>(&self, payload: T) -> Result<Value>
Sourcepub async fn search<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn search<T: Serialize>(&self, payload: T) -> Result<Value>
Examples found in repository?
examples/core_direct_search_optional.rs (lines 41-44)
25async fn main() -> Result<(), Box<dyn Error>> {
26 let name = "core_direct_search_optional";
27 let started = Instant::now();
28 let config = ScenarioConfig::from_env();
29 let client = create_client().await?;
30 let run_id = new_run_id("core_direct_search_optional");
31 client.set_run_id(Some(run_id.clone()));
32 client.set_transport(TransportMode::Http);
33
34 let mut passed = true;
35 let mut detail = "validated optional core direct-search".to_string();
36 let mut metrics = json!({});
37
38 let scenario = async {
39 match client
40 .core
41 .search(json!({
42 "query": "direct core semantic search probe",
43 "k": 5,
44 }))
45 .await
46 {
47 Ok(payload) => {
48 require(
49 payload.is_array() || payload.is_object(),
50 format!("core.search payload must be dict/list: {payload}"),
51 )?;
52
53 metrics = json!({
54 "run_id": run_id,
55 "enabled": true,
56 "result_count": extract_result_count(&payload),
57 });
58 detail = "validated optional core direct-search (enabled)".to_string();
59 }
60 Err(err) => {
61 if config.expect_direct_search_enabled {
62 return Err(boxed_error(format!(
63 "core.search expected enabled but failed: {err}"
64 )));
65 }
66 let message = err.to_string();
67 require(
68 is_permission_denied_like(&message),
69 format!(
70 "core.search should fail with permission denied when disabled: {message}"
71 ),
72 )?;
73
74 metrics = json!({
75 "run_id": run_id,
76 "enabled": false,
77 "message": message,
78 });
79 detail = "validated optional core direct-search (disabled)".to_string();
80 }
81 }
82
83 Ok::<(), Box<dyn Error>>(())
84 }
85 .await;
86
87 if let Err(err) = scenario {
88 passed = false;
89 detail = err.to_string();
90 }
91
92 let cleanup_ok = cleanup_run(&client, &run_id).await;
93 if !cleanup_ok {
94 passed = false;
95 detail = format!("{detail} | cleanup failures");
96 }
97
98 print_summary(
99 name,
100 passed,
101 &detail,
102 &metrics,
103 started.elapsed().as_secs_f64(),
104 cleanup_ok,
105 );
106
107 if passed {
108 Ok(())
109 } else {
110 Err(boxed_error(detail))
111 }
112}More examples
examples/internal/core_direct_search.rs (lines 41-44)
25async fn main() -> Result<(), Box<dyn Error>> {
26 let name = "internal_core_direct_search";
27 let started = Instant::now();
28 let config = ScenarioConfig::from_env();
29 let client = create_client().await?;
30 let run_id = new_run_id("internal_core_direct_search");
31 client.set_run_id(Some(run_id.clone()));
32 client.set_transport(TransportMode::Http);
33
34 let mut passed = true;
35 let mut detail = "validated optional core direct-search".to_string();
36 let mut metrics = json!({});
37
38 let scenario = async {
39 match client
40 .core
41 .search(json!({
42 "query": "direct core semantic search probe",
43 "k": 5,
44 }))
45 .await
46 {
47 Ok(payload) => {
48 require(
49 payload.is_array() || payload.is_object(),
50 format!("core.search payload must be dict/list: {payload}"),
51 )?;
52
53 metrics = json!({
54 "run_id": run_id,
55 "enabled": true,
56 "result_count": extract_result_count(&payload),
57 });
58 detail = "validated optional core direct-search (enabled)".to_string();
59 }
60 Err(err) => {
61 if config.expect_direct_search_enabled {
62 return Err(boxed_error(format!(
63 "core.search expected enabled but failed: {err}"
64 )));
65 }
66 let message = err.to_string();
67 require(
68 is_permission_denied_like(&message),
69 format!(
70 "core.search should fail with permission denied when disabled: {message}"
71 ),
72 )?;
73
74 metrics = json!({
75 "run_id": run_id,
76 "enabled": false,
77 "message": message,
78 });
79 detail = "validated optional core direct-search (disabled)".to_string();
80 }
81 }
82
83 Ok::<(), Box<dyn Error>>(())
84 }
85 .await;
86
87 if let Err(err) = scenario {
88 passed = false;
89 detail = err.to_string();
90 }
91
92 let cleanup_ok = cleanup_run(&client, &run_id).await;
93 if !cleanup_ok {
94 passed = false;
95 detail = format!("{detail} | cleanup failures");
96 }
97
98 print_summary(
99 name,
100 passed,
101 &detail,
102 &metrics,
103 started.elapsed().as_secs_f64(),
104 cleanup_ok,
105 );
106
107 if passed {
108 Ok(())
109 } else {
110 Err(boxed_error(detail))
111 }
112}pub async fn delete_node<T: Serialize>(&self, payload: T) -> Result<Value>
Sourcepub async fn delete_run<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn delete_run<T: Serialize>(&self, payload: T) -> Result<Value>
Examples found in repository?
examples/support/utils.rs (line 93)
87pub async fn cleanup_run(client: &Client, run_id: &str) -> bool {
88 let control_ok = client
89 .control
90 .delete_run(json!({ "run_id": run_id }))
91 .await
92 .is_ok();
93 let core_ok = match client.core.delete_run(json!({ "run_id": run_id })).await {
94 Ok(_) => true,
95 Err(err) => is_permission_denied_like(&err.to_string()),
96 };
97 control_ok && core_ok
98}pub async fn create_session<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn snapshot_session<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn load_session<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn commit_session<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn drop_session<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn write_memory<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn read_memory<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn add_memory<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn get_memory<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn clear_memory<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn grant_permission<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn revoke_permission<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn check_permission<T: Serialize>(&self, payload: T) -> Result<Value>
pub async fn unsubscribe_events<T: Serialize>( &self, payload: T, ) -> Result<Value>
Source§impl CoreClient
impl CoreClient
pub async fn subscribe_events<T: Serialize>( &self, payload: T, ) -> Result<ValueStream>
pub async fn watch_memory<T: Serialize>( &self, payload: T, ) -> Result<ValueStream>
pub async fn list_subscriptions(&self) -> Result<Value>
pub async fn storage_stats(&self) -> Result<Value>
pub async fn trigger_compaction(&self) -> Result<Value>
Trait Implementations§
Source§impl Clone for CoreClient
impl Clone for CoreClient
Source§fn clone(&self) -> CoreClient
fn clone(&self) -> CoreClient
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for CoreClient
impl !RefUnwindSafe for CoreClient
impl Send for CoreClient
impl Sync for CoreClient
impl Unpin for CoreClient
impl UnsafeUnpin for CoreClient
impl !UnwindSafe for CoreClient
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request