Skip to main content

CoreClient

Struct CoreClient 

Source
pub struct CoreClient { /* private fields */ }

Implementations§

Source§

impl CoreClient

Source

pub async fn insert<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn batch_insert<T: Serialize>(&self, payload: T) -> Result<Value>

Source

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
Hide additional 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}
Source

pub async fn delete_node<T: Serialize>(&self, payload: T) -> Result<Value>

Source

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}
Source

pub async fn create_session<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn snapshot_session<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn load_session<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn commit_session<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn drop_session<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn write_memory<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn read_memory<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn add_memory<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn get_memory<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn clear_memory<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn grant_permission<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn revoke_permission<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn check_permission<T: Serialize>(&self, payload: T) -> Result<Value>

Source

pub async fn unsubscribe_events<T: Serialize>( &self, payload: T, ) -> Result<Value>

Source§

impl CoreClient

Source

pub async fn subscribe_events<T: Serialize>( &self, payload: T, ) -> Result<ValueStream>

Source

pub async fn watch_memory<T: Serialize>( &self, payload: T, ) -> Result<ValueStream>

Source

pub async fn list_subscriptions(&self) -> Result<Value>

Source

pub async fn storage_stats(&self) -> Result<Value>

Source

pub async fn trigger_compaction(&self) -> Result<Value>

Trait Implementations§

Source§

impl Clone for CoreClient

Source§

fn clone(&self) -> CoreClient

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromRef<T> for T
where T: Clone,

Source§

fn from_ref(input: &T) -> T

Converts to this type from a reference to the input type.
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more