Struct indradb_proto::Client
source · pub struct Client(_);
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>
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 !RefUnwindSafe for Client
impl Send for Client
impl Sync for Client
impl Unpin for Client
impl !UnwindSafe for Client
Blanket Implementations§
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