pub trait TryFromChunks: Sized {
    // Required method
    fn try_from_chunks<'async_trait>(
        chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin,
        metadata: FieldMetadata
    ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
       where Self: 'async_trait;
}
Expand description

Types that can be created from a Stream of Bytes.

All fields for a given struct must implement either this trait or the TryFromField trait directly to be able to derive the TryFromMultipart trait.

Example

use axum::async_trait;
use axum::body::Bytes;
use axum_typed_multipart::{FieldMetadata, TryFromChunks, TypedMultipartError};
use futures_util::stream::Stream;

struct Data(String);

#[async_trait]
impl TryFromChunks for Data {
    async fn try_from_chunks(
        chunks: impl Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin,
        metadata: FieldMetadata,
    ) -> Result<Self, TypedMultipartError> {
        let string = String::try_from_chunks(chunks, metadata).await?;
        Ok(Data(string))
    }
}

Required Methods§

source

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

Consume the input Stream of Bytes to create the supplied type.

The metadata parameter contains information about the field.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl TryFromChunks for bool

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for char

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for f32

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for f64

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for i8

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for i16

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for i32

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for i64

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for i128

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for isize

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for u8

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for u16

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for u32

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for u64

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for u128

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for usize

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for String

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for Bytes

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, __arg1: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for NamedTempFile

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, __arg1: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

source§

impl TryFromChunks for Uuid

source§

fn try_from_chunks<'async_trait>( chunks: impl 'async_trait + Stream<Item = Result<Bytes, TypedMultipartError>> + Send + Sync + Unpin, metadata: FieldMetadata ) -> Pin<Box<dyn Future<Output = Result<Self, TypedMultipartError>> + Send + 'async_trait>>
where Self: 'async_trait,

Implementors§