Struct Form
pub struct Form { /* private fields */ }http and multipart only.Expand description
Implementations§
§impl Form
impl Form
pub fn content_type(&self) -> HeaderValue
pub fn content_type(&self) -> HeaderValue
The Content-Type header value (multipart/form-data; boundary=…).
pub async fn file<N, P>(self, name: N, path: P) -> Result<Form, Error>
pub async fn file<N, P>(self, name: N, path: P) -> Result<Form, Error>
Add a file part to the form. Reads the file asynchronously, infers the
MIME type from the file extension (falling back to
application/octet-stream), and sets filename from the path.
pub async fn with_field_spec(self, spec: &str) -> Result<Form, FieldSpecError>
pub async fn with_field_spec(self, spec: &str) -> Result<Form, FieldSpecError>
Add a part described by a compact name=value field-spec string.
See FieldSpec for the supported syntax (the same convention used
by curl -F, httpie, and similar tools). Performs the I/O implied by
=@ (file), =< (file-as-text), and =@- / =<- (stdin) sources;
the =value form is purely textual.
pub fn content_length(&self) -> Option<u64>
pub fn content_length(&self) -> Option<u64>
Total content length of the encoded form, if every part has a known
size. Returns None otherwise (use chunked transfer encoding in that
case).
Computed analytically — no headers are rendered into a buffer.
pub fn into_stream(
self,
) -> impl Stream<Item = Result<Bytes, Box<dyn Error + Send + Sync>>> + Send
pub fn into_stream( self, ) -> impl Stream<Item = Result<Bytes, Box<dyn Error + Send + Sync>>> + Send
Convert this form into a stream of body chunks.
Per-part overhead: one heap-allocated framing chunk (boundary delimiter + headers, prefixed with CRLF on all but the first part) and the part body. Bytes-bodied parts are emitted in a single chunk; streamed bodies pass through their underlying chunks unchanged.
pub fn into_body(self) -> Body
pub fn into_body(self) -> Body
Consume the form and produce a Body ready to be set on
a request. Use content_type and
content_length to set the relevant request
headers.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Form
impl !RefUnwindSafe for Form
impl Send for Form
impl !Sync for Form
impl Unpin for Form
impl UnsafeUnpin for Form
impl !UnwindSafe for Form
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer