pub trait Node2ProxyInterface: Send + Sync {
type CloseResponseFut: Future<Output = Result<CloseableCloseResult, Error>> + Send;
type QueryResponseFut: Future<Output = Result<Vec<u8>, Error>> + Send;
type GetConnectionInfoResponseFut: Future<Output = Result<ConnectionInfo, Error>> + Send;
type GetAttributesResponseFut: Future<Output = Result<Node2GetAttributesResult, Error>> + Send;
type UpdateAttributesResponseFut: Future<Output = Result<Node2UpdateAttributesResult, Error>> + Send;
type SyncResponseFut: Future<Output = Result<Node2SyncResult, Error>> + Send;
type GetExtendedAttributeResponseFut: Future<Output = Result<Node2GetExtendedAttributeResult, Error>> + Send;
type SetExtendedAttributeResponseFut: Future<Output = Result<Node2SetExtendedAttributeResult, Error>> + Send;
type RemoveExtendedAttributeResponseFut: Future<Output = Result<Node2RemoveExtendedAttributeResult, Error>> + Send;
// Required methods
fn close(&self) -> Self::CloseResponseFut;
fn query(&self) -> Self::QueryResponseFut;
fn reopen(
&self,
rights_request: &RightsRequest,
object_request: ServerEnd<NodeMarker>
) -> Result<(), Error>;
fn get_connection_info(&self) -> Self::GetConnectionInfoResponseFut;
fn get_attributes(
&self,
query: NodeAttributesQuery
) -> Self::GetAttributesResponseFut;
fn update_attributes(
&self,
payload: &MutableNodeAttributes
) -> Self::UpdateAttributesResponseFut;
fn sync(&self) -> Self::SyncResponseFut;
// Provided methods
fn list_extended_attributes(
&self,
iterator: ServerEnd<ExtendedAttributeIteratorMarker>
) -> Result<(), Error> { ... }
fn get_extended_attribute(
&self,
name: &[u8]
) -> Self::GetExtendedAttributeResponseFut { ... }
fn set_extended_attribute(
&self,
name: &[u8],
value: ExtendedAttributeValue,
mode: SetExtendedAttributeMode
) -> Self::SetExtendedAttributeResponseFut { ... }
fn remove_extended_attribute(
&self,
name: &[u8]
) -> Self::RemoveExtendedAttributeResponseFut { ... }
}