about summary refs log tree commit diff
path: root/kittybox-rs/src/media/mod.rs
diff options
context:
space:
mode:
authorVika <vika@fireburn.ru>2022-07-21 13:03:37 +0300
committerVika <vika@fireburn.ru>2022-07-21 13:03:37 +0300
commitecdb6c7db16406a20b56e7bb6e73d4c59ee246f1 (patch)
treee7ca0e8183ddb3dbcade87914c81aeb019389f52 /kittybox-rs/src/media/mod.rs
parent2dcd143a9855370da65d76e1d7ba2b93b61f8b9f (diff)
media: improve Metadata typing
content_type is now optional; if not specified, it will remain
empty. `application/octet-stream` will be put on read in the
frontend.

Length is now represented as NonZeroUsize - why would you upload a
zero-byte file when you can just conjure one from the void whenever
you need one? This should save me a little bit of memory.

Representing content_type as a typed MIME value would be the next
logical step.
Diffstat (limited to 'kittybox-rs/src/media/mod.rs')
-rw-r--r--kittybox-rs/src/media/mod.rs6
1 files changed, 5 insertions, 1 deletions
diff --git a/kittybox-rs/src/media/mod.rs b/kittybox-rs/src/media/mod.rs
index b64929d..a8ae6f9 100644
--- a/kittybox-rs/src/media/mod.rs
+++ b/kittybox-rs/src/media/mod.rs
@@ -76,7 +76,11 @@ pub async fn serve<S: MediaStore>(
                 let headers = r.headers_mut().unwrap();
                 headers.insert(
                     "Content-Type",
-                    HeaderValue::from_str(&metadata.content_type).unwrap()
+                    HeaderValue::from_str(
+                        metadata.content_type
+                            .as_deref()
+                            .unwrap_or("application/octet-stream")
+                    ).unwrap()
                 );
                 if let Some(length) = metadata.length {
                     headers.insert(