Skip to main content

AsyncCopyInWriter

Struct AsyncCopyInWriter 

Source
pub struct AsyncCopyInWriter<'a> { /* private fields */ }
Expand description

Async COPY IN writer for bulk data insertion.

§Drop Safety

If this writer is dropped without calling finish() or cancel(), it will attempt a best-effort synchronous cancel by queuing a CopyFail message in the connection’s write buffer. The next async operation on the connection will flush and drain the cancel response, restoring the connection to a usable state.

Implementations§

Source§

impl<'a> AsyncCopyInWriter<'a>

Source

pub async fn send(&mut self, data: &[u8]) -> Result<()>

Sends data to the server.

§Errors

Currently infallible — frame construction is pure. The Result return type is preserved for forward compatibility.

Source

pub async fn flush(&mut self) -> Result<()>

Flushes any buffered data to the server.

§Errors

Returns Error (I/O) if flushing the async transport fails.

Source

pub async fn send_direct(&mut self, data: &[u8]) -> Result<()>

Sends COPY data directly to the stream without internal buffering.

This writes data directly to the TCP stream, letting the kernel handle buffering. More efficient for streaming large amounts of data. Call flush_stream() periodically to ensure data is sent.

§Errors
  • Returns Error (protocol) if data.len() + 4 exceeds u32::MAX.
  • Returns Error (I/O) on transport write failure.
Source

pub async fn flush_stream(&mut self) -> Result<()>

Flushes the TCP stream.

Use with send_direct() to periodically ensure data reaches the server.

§Errors

Returns Error (I/O) if flushing the async transport fails.

Source

pub async fn finish(self) -> Result<u64>

Finishes the COPY operation and returns the number of rows inserted.

§Errors

Returns Error (server) if the server reports an ErrorResponse, or Error (I/O) / Error (closed) on transport failure.

Source

pub async fn cancel(self, reason: &str) -> Result<()>

Cancels the COPY operation.

§Errors

Returns Error (I/O) on transport write failure, or Error (closed) if the server drops the connection before acknowledging the cancel.

Trait Implementations§

Source§

impl<'a> Debug for AsyncCopyInWriter<'a>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Drop for AsyncCopyInWriter<'_>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for AsyncCopyInWriter<'a>

§

impl<'a> !RefUnwindSafe for AsyncCopyInWriter<'a>

§

impl<'a> Send for AsyncCopyInWriter<'a>

§

impl<'a> Sync for AsyncCopyInWriter<'a>

§

impl<'a> Unpin for AsyncCopyInWriter<'a>

§

impl<'a> UnsafeUnpin for AsyncCopyInWriter<'a>

§

impl<'a> !UnwindSafe for AsyncCopyInWriter<'a>

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<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