|
| 1 | +use super::misc::bytes_to_utf8; |
1 | 2 | use crate::frame::Setup; |
2 | 3 | use crate::utils::DEFAULT_MIME_TYPE; |
3 | 4 | use bytes::Bytes; |
@@ -125,32 +126,30 @@ impl SetupPayload { |
125 | 126 | } |
126 | 127 |
|
127 | 128 | pub fn metadata_mime_type(&self) -> Option<&str> { |
128 | | - match &self.mime_m { |
129 | | - Some(b) => Some(std::str::from_utf8(b.as_ref()).expect("Invalid UTF-8 bytes.")), |
130 | | - None => None, |
131 | | - } |
| 129 | + bytes_to_utf8(&self.mime_m) |
132 | 130 | } |
133 | 131 |
|
134 | 132 | pub fn data_mime_type(&self) -> Option<&str> { |
135 | | - match &self.mime_d { |
136 | | - Some(b) => Some(std::str::from_utf8(b.as_ref()).expect("Invalid UTF-8 bytes.")), |
137 | | - None => None, |
138 | | - } |
| 133 | + bytes_to_utf8(&self.mime_d) |
139 | 134 | } |
140 | 135 | } |
141 | 136 |
|
142 | 137 | impl From<Setup> for SetupPayload { |
143 | 138 | fn from(input: Setup) -> SetupPayload { |
144 | 139 | let mut bu = SetupPayload::builder(); |
145 | 140 | // TODO: fill other properties. |
146 | | - bu = bu.set_data_mime_type(input.get_mime_data()); |
147 | | - bu = bu.set_metadata_mime_type(input.get_mime_metadata()); |
148 | | - let ka = (input.get_keepalive(), input.get_lifetime()); |
| 141 | + if let Some(m) = input.get_mime_data() { |
| 142 | + bu = bu.set_data_mime_type(m); |
| 143 | + } |
| 144 | + if let Some(m) = input.get_mime_metadata() { |
| 145 | + bu = bu.set_metadata_mime_type(m); |
| 146 | + } |
| 147 | + let keepalive = (input.get_keepalive(), input.get_lifetime()); |
149 | 148 | let (d, m) = input.split(); |
150 | 149 | bu.inner.d = d; |
151 | 150 | bu.inner.m = m; |
152 | 151 | let mut pa = bu.build(); |
153 | | - pa.keepalive = ka; |
| 152 | + pa.keepalive = keepalive; |
154 | 153 | pa |
155 | 154 | } |
156 | 155 | } |
0 commit comments