pub struct Client(/* private fields */);Expand description
A higher-level client implementation.
This should be better suited than the low-level client auto-generated by
gRPC/tonic in virtually every case, unless you want to avoid the cost of
translating between protobuf types and their IndraDB equivalents. The
interface is designed to resemble indradb::Database, but async.
Implementations§
Source§impl Client
impl Client
Sourcepub async fn new(endpoint: Endpoint) -> Result<Self, ClientError>
pub async fn new(endpoint: Endpoint) -> Result<Self, ClientError>
Sourcepub async fn ping(&mut self) -> Result<(), ClientError>
pub async fn ping(&mut self) -> Result<(), ClientError>
Pings the server.
Sourcepub async fn sync(&mut self) -> Result<(), ClientError>
pub async fn sync(&mut self) -> Result<(), ClientError>
Syncs persisted content. Depending on the datastore implementation, this has different meanings - including potentially being a no-op.
Sourcepub async fn create_vertex(
&mut self,
vertex: &Vertex,
) -> Result<bool, ClientError>
pub async fn create_vertex( &mut self, vertex: &Vertex, ) -> Result<bool, ClientError>
Creates a new vertex. Returns whether the vertex was successfully created - if this is false, it’s because a vertex with the same UUID already exists.
§Arguments
vertex: The vertex to create.
Sourcepub async fn create_vertex_from_type(
&mut self,
t: Identifier,
) -> Result<Uuid, ClientError>
pub async fn create_vertex_from_type( &mut self, t: Identifier, ) -> Result<Uuid, ClientError>
Creates a new vertex with just a type specification. As opposed to
create_vertex, this is used when you do not want to manually specify
the vertex’s UUID. Returns the new vertex’s UUID.
§Arguments
t: The type of the vertex to create.
Sourcepub async fn create_edge(&mut self, edge: &Edge) -> Result<bool, ClientError>
pub async fn create_edge(&mut self, edge: &Edge) -> Result<bool, ClientError>
Creates a new edge. If the edge already exists, this will update it with a new update datetime. Returns whether the edge was successfully created - if this is false, it’s because one of the specified vertices is missing.
§Arguments
edge: The edge to create.
Sourcepub async fn get<Q: Into<Query>>(
&mut self,
q: Q,
) -> Result<Vec<QueryOutputValue>, ClientError>
pub async fn get<Q: Into<Query>>( &mut self, q: Q, ) -> Result<Vec<QueryOutputValue>, ClientError>
Sourcepub async fn set_properties<Q: Into<Query>>(
&mut self,
q: Q,
name: Identifier,
value: &Json,
) -> Result<(), ClientError>
pub async fn set_properties<Q: Into<Query>>( &mut self, q: Q, name: Identifier, value: &Json, ) -> Result<(), ClientError>
Sets properties.
§Arguments
q: The query to run.name: The property name.value: The property value.
Sourcepub async fn bulk_insert(
&mut self,
items: Vec<BulkInsertItem>,
) -> Result<(), ClientError>
pub async fn bulk_insert( &mut self, items: Vec<BulkInsertItem>, ) -> Result<(), ClientError>
Bulk inserts many vertices, edges, and/or properties.
Note that datastores have discretion on how to approach safeguard vs performance tradeoffs. In particular:
- If the datastore is disk-backed, it may or may not flush before returning.
- The datastore might not verify for correctness; e.g., it might not ensure that the relevant vertices exist before inserting an edge. If you want maximum protection, use the equivalent functions in transactions, which will provide more safeguards.
§Arguments
items: The items to insert.
pub async fn index_property( &mut self, name: Identifier, ) -> Result<(), ClientError>
pub async fn execute_plugin( &mut self, name: &str, arg: Json, ) -> Result<Json, ClientError>
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Client
impl !RefUnwindSafe for Client
impl !UnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl UnsafeUnpin for Client
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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>
T in a tonic::Request