pub struct Client { /* private fields */ }
Expand description
Client object
Implementations
sourceimpl Client
impl Client
sourceimpl Client
impl Client
sourcepub async fn read_bytes(&self, address: XorName) -> Result<Bytes>
pub async fn read_bytes(&self, address: XorName) -> Result<Bytes>
Reads Bytes
from the network, whose contents are contained within on or more chunks.
sourcepub async fn read_from(
&self,
address: XorName,
position: usize,
length: usize
) -> Result<Bytes>where
Self: Sized,
pub async fn read_from(
&self,
address: XorName,
position: usize,
length: usize
) -> Result<Bytes>where
Self: Sized,
Read bytes from the network. The contents are spread across multiple chunks in the network. This function invokes the self-encryptor and returns the data that was initially stored.
Takes position
and length
arguments which specify the start position
and the length of bytes to be read.
Passing 0
to position reads the data from the beginning,
and the length
is just an upper limit.
sourcepub fn chunk_bytes(&self, bytes: Bytes) -> Result<(XorName, Vec<Chunk>)>
pub fn chunk_bytes(&self, bytes: Bytes) -> Result<(XorName, Vec<Chunk>)>
Tries to chunk the bytes, returning an address and chunks, without storing anything to network.
sourcepub async fn upload(&self, bytes: Bytes) -> Result<XorName>
pub async fn upload(&self, bytes: Bytes) -> Result<XorName>
Directly writes Bytes
to the network in the
form of immutable chunks, without any batching.
sourcepub async fn upload_and_verify(&self, bytes: Bytes) -> Result<(XorName, Bytes)>
pub async fn upload_and_verify(&self, bytes: Bytes) -> Result<(XorName, Bytes)>
Directly writes Bytes
to the network in the
form of immutable chunks, without any batching.
It also attempts to verify that all the data was uploaded to the network before returning.
sourcepub fn calculate_address(bytes: Bytes) -> Result<XorName>
pub fn calculate_address(bytes: Bytes) -> Result<XorName>
Calculates a LargeFile’s/SmallFile’s address from self encrypted chunks, without storing them onto the network.
sourceimpl Client
impl Client
sourcepub async fn send_query(
&self,
query: DataQueryVariant
) -> Result<QueryResult, Error>
pub async fn send_query(
&self,
query: DataQueryVariant
) -> Result<QueryResult, Error>
Send a Query to the network and await a response. Queries are automatically retried using exponential backoff if the timeout is hit.
sourcepub async fn send_query_without_retry(
&self,
query: DataQueryVariant
) -> Result<QueryResult, Error>
pub async fn send_query_without_retry(
&self,
query: DataQueryVariant
) -> Result<QueryResult, Error>
Send a Query to the network and await a response. Queries are not retried if the timeout is hit.
sourcepub async fn send_signed_query(
&self,
query: DataQuery,
client_pk: PublicKey,
serialised_query: Bytes,
signature: Signature
) -> Result<QueryResult, Error>
pub async fn send_signed_query(
&self,
query: DataQuery,
client_pk: PublicKey,
serialised_query: Bytes,
signature: Signature
) -> Result<QueryResult, Error>
Send a Query to the network and await a response. This is part of a public API, for the user to provide the serialised and already signed query.
sourceimpl Client
impl Client
sourcepub async fn publish_register_ops(
&self,
wal: RegisterWriteAheadLog
) -> Result<(), Error>
pub async fn publish_register_ops(
&self,
wal: RegisterWriteAheadLog
) -> Result<(), Error>
Publish all register mutation operations in a WAL to the network Incrementing the WAL index as successful writes are sent out. Stops at the first error. Starts publishing from the index when called again with the same WAL.
sourcepub async fn create_register(
&self,
name: XorName,
tag: u64,
policy: Policy
) -> Result<(Address, RegisterWriteAheadLog), Error>
pub async fn create_register(
&self,
name: XorName,
tag: u64,
policy: Policy
) -> Result<(Address, RegisterWriteAheadLog), Error>
Creates a Register which can then be written to.
Returns a write ahead log (WAL) of register operations, note that the changes are not uploaded to the
network until the WAL is published with publish_register_ops
A tag must be supplied. A xorname must be supplied, this can be random or deterministic as per your apps needs.
sourcepub async fn write_to_register(
&self,
address: Address,
entry: Entry,
children: BTreeSet<EntryHash>
) -> Result<(EntryHash, RegisterWriteAheadLog), Error>
pub async fn write_to_register(
&self,
address: Address,
entry: Entry,
children: BTreeSet<EntryHash>
) -> Result<(EntryHash, RegisterWriteAheadLog), Error>
Write to Register
Returns a write ahead log (WAL) of register operations, note that the changes are not uploaded to the
network until the WAL is published with publish_register_ops
sourcepub async fn get_register(&self, address: Address) -> Result<Register, Error>
pub async fn get_register(&self, address: Address) -> Result<Register, Error>
Get the entire Register from the Network
sourcepub async fn read_register(
&self,
address: Address
) -> Result<BTreeSet<(EntryHash, Entry)>, Error>
pub async fn read_register(
&self,
address: Address
) -> Result<BTreeSet<(EntryHash, Entry)>, Error>
Get the latest entry (or entries if branching)
sourcepub async fn get_register_entry(
&self,
address: Address,
hash: EntryHash
) -> Result<Entry, Error>
pub async fn get_register_entry(
&self,
address: Address,
hash: EntryHash
) -> Result<Entry, Error>
Get an entry from a Register on the Network by its hash
sourcepub async fn get_register_owner(&self, address: Address) -> Result<User, Error>
pub async fn get_register_owner(&self, address: Address) -> Result<User, Error>
Get the owner of a Register.
sourcepub async fn get_register_permissions_for_user(
&self,
address: Address,
user: User
) -> Result<Permissions, Error>
pub async fn get_register_permissions_for_user(
&self,
address: Address,
user: User
) -> Result<Permissions, Error>
Get the set of Permissions in a Register for a specific user.
sourceimpl Client
impl Client
Easily manage connections to/from The Safe Network with the client and its APIs.
Use a random client for read-only or one-time operations.
Supply an existing, SecretKey
which holds a SafeCoin
balance to be able to perform
write operations.
sourcepub async fn connect(&self) -> Result<(), Error>
pub async fn connect(&self) -> Result<(), Error>
Bootstrap this client to the network.
In case of an existing SecretKey the client will attempt to retrieve the history of the key’s balance in order to be ready for any token operations.
sourcepub fn keypair(&self) -> &Keypair
pub fn keypair(&self) -> &Keypair
Return the client’s keypair.
Useful for retrieving the PublicKey
or KeyPair
in the event you need to sign something
sourcepub fn public_key(&self) -> PublicKey
pub fn public_key(&self) -> PublicKey
Return the client’s PublicKey
.
sourcepub fn dbc_owner(&self) -> &Owner
pub fn dbc_owner(&self) -> &Owner
Return the client’s DBC owner, which will be a secret key.
This can then be used to sign output DBCs during a DBC reissue.
sourcepub async fn is_known_section_key(&self, section_key: &PublicKey) -> bool
pub async fn is_known_section_key(&self, section_key: &PublicKey) -> bool
Check if the provided public key is a known section key based on our current knowledge of the network and sections chains.
sourcepub async fn section_tree(&self) -> SectionTree
pub async fn section_tree(&self) -> SectionTree
SectionTree used to bootstrap the client on the network.
This is updated by the client as it receives Anti-Entropy/update messages from the network.
Any user of this API is responsible for caching it so it can use it for any new Client
instance not needing to obtain all this information from the network all over again.
sourcepub fn builder() -> ClientBuilder
pub fn builder() -> ClientBuilder
Create a builder to instantiate a Client
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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<T> FmtForward for T
impl<T> FmtForward for T
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
Causes self
to use its Binary
implementation when Debug
-formatted.
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
Causes self
to use its Display
implementation when
Debug
-formatted. Read more
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
Causes self
to use its LowerExp
implementation when
Debug
-formatted. Read more
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
Causes self
to use its LowerHex
implementation when
Debug
-formatted. Read more
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
Causes self
to use its Octal
implementation when Debug
-formatted.
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
Causes self
to use its Pointer
implementation when
Debug
-formatted. Read more
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
Causes self
to use its UpperExp
implementation when
Debug
-formatted. Read more
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
Causes self
to use its UpperHex
implementation when
Debug
-formatted. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
Pipes by value. This is generally the method you want to use. Read more
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
Borrows self
and passes that borrow into the pipe function. Read more
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
Mutably borrows self
and passes that borrow into the pipe function. Read more
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> Rwhere
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
Borrows self
, then passes self.borrow()
into the pipe function. Read more
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> Rwhere
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
Mutably borrows self
, then passes self.borrow_mut()
into the pipe
function. Read more
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> Rwhere
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows self
, then passes self.as_ref()
into the pipe function.
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> Rwhere
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
Mutably borrows self
, then passes self.as_mut()
into the pipe
function. Read more
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> Rwhere
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Borrows self
, then passes self.deref()
into the pipe function.
impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Tap for T
impl<T> Tap for T
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Immutable access to the Borrow<B>
of a value. Read more
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the BorrowMut<B>
of a value. Read more
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Immutable access to the AsRef<R>
view of a value. Read more
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Mutable access to the AsMut<R>
view of a value. Read more
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Selfwhere
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the Deref::Target
of a value. Read more
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Selfwhere
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the Deref::Target
of a value. Read more
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap()
only in debug builds, and is erased in release builds.
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut()
only in debug builds, and is erased in release
builds. Read more
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Selfwhere
Self: Borrow<B>,
B: ?Sized,
Calls .tap_borrow()
only in debug builds, and is erased in release
builds. Read more
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Selfwhere
Self: BorrowMut<B>,
B: ?Sized,
Calls .tap_borrow_mut()
only in debug builds, and is erased in release
builds. Read more
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Selfwhere
Self: AsRef<R>,
R: ?Sized,
Calls .tap_ref()
only in debug builds, and is erased in release
builds. Read more
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Selfwhere
Self: AsMut<R>,
R: ?Sized,
Calls .tap_ref_mut()
only in debug builds, and is erased in release
builds. Read more
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
impl<V, T> VZip<V> for Twhere
V: MultiLane<T>,
fn vzip(self) -> V
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
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
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more