pub struct FileUploadRequest { /* private fields */ }Expand description
Validated provider-file upload request.
This owns bytes without uploading them. Submit it through crate::ProviderBackend::upload_file
and retain the returned lifecycle id for explicit owned-resource cleanup.
§Examples
use providers_kit::files::FileUploadRequest;
let request = FileUploadRequest::new("notes.txt", "text/plain", b"notes".to_vec())?;
assert_eq!(request.file_name(), "notes.txt");
assert_eq!(request.media_type(), "text/plain");
assert_eq!(request.data(), b"notes");
Implementations§
Source§impl FileUploadRequest
impl FileUploadRequest
Sourcepub fn new(
file_name: impl Into<String>,
media_type: impl Into<String>,
data: Vec<u8>,
) -> Result<Self, KitError>
pub fn new( file_name: impl Into<String>, media_type: impl Into<String>, data: Vec<u8>, ) -> Result<Self, KitError>
Creates a non-empty upload with a file name and media type.
§Errors
Returns an input error for an empty, padded, or control-containing file name; malformed or padded MIME type/parameters; or empty file bytes.
See crate::files::FileUploadRequest for a complete example.
Sourcepub fn file_name(&self) -> &str
pub fn file_name(&self) -> &str
Returns the file name presented to the provider.
See crate::files::FileUploadRequest for a complete example.
Sourcepub fn media_type(&self) -> &str
pub fn media_type(&self) -> &str
Returns the declared media type.
See crate::files::FileUploadRequest for a complete example.
Sourcepub fn data(&self) -> &[u8] ⓘ
pub fn data(&self) -> &[u8] ⓘ
Returns the raw file bytes.
See crate::files::FileUploadRequest for a complete example.
Sourcepub fn into_parts(self) -> (String, String, Vec<u8>)
pub fn into_parts(self) -> (String, String, Vec<u8>)
Consumes the request into its file name, media type, and bytes.
§Examples
use providers_kit::files::FileUploadRequest;
let request = FileUploadRequest::new("notes.txt", "text/plain", b"notes".to_vec())?;
let (name, media_type, bytes) = request.into_parts();
assert_eq!(name, "notes.txt");
assert_eq!(media_type, "text/plain");
assert_eq!(bytes, b"notes");
Trait Implementations§
Source§impl Clone for FileUploadRequest
impl Clone for FileUploadRequest
Source§impl Debug for FileUploadRequest
impl Debug for FileUploadRequest
Source§impl<'de> Deserialize<'de> for FileUploadRequest
impl<'de> Deserialize<'de> for FileUploadRequest
Source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
impl Eq for FileUploadRequest
Source§impl PartialEq for FileUploadRequest
impl PartialEq for FileUploadRequest
Source§impl Serialize for FileUploadRequest
impl Serialize for FileUploadRequest
impl StructuralPartialEq for FileUploadRequest
Auto Trait Implementations§
impl Freeze for FileUploadRequest
impl RefUnwindSafe for FileUploadRequest
impl Send for FileUploadRequest
impl Sync for FileUploadRequest
impl Unpin for FileUploadRequest
impl UnsafeUnpin for FileUploadRequest
impl UnwindSafe for FileUploadRequest
Blanket Implementations§
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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.