events: Make FileMessageEventContent non-exhaustive
This commit is contained in:
		
							parent
							
								
									d43bfe6f7c
								
							
						
					
					
						commit
						2ada8690f8
					
				| @ -437,30 +437,45 @@ impl EmoteMessageEventContent { | |||||||
| 
 | 
 | ||||||
| /// The payload for a file message.
 | /// The payload for a file message.
 | ||||||
| #[derive(Clone, Debug, Deserialize, Serialize)] | #[derive(Clone, Debug, Deserialize, Serialize)] | ||||||
|  | #[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)] | ||||||
| #[serde(tag = "msgtype", rename = "m.file")] | #[serde(tag = "msgtype", rename = "m.file")] | ||||||
| pub struct FileMessageEventContent { | pub struct FileMessageEventContent { | ||||||
|     /// A human-readable description of the file. This is recommended to be the filename of the
 |     /// A human-readable description of the file.
 | ||||||
|     /// original upload.
 |     ///
 | ||||||
|  |     /// This is recommended to be the filename of the original upload.
 | ||||||
|     pub body: String, |     pub body: String, | ||||||
| 
 | 
 | ||||||
|     /// The original filename of the uploaded file.
 |     /// The original filename of the uploaded file.
 | ||||||
|     #[serde(skip_serializing_if = "Option::is_none")] |     #[serde(skip_serializing_if = "Option::is_none")] | ||||||
|     pub filename: Option<String>, |     pub filename: Option<String>, | ||||||
| 
 | 
 | ||||||
|     /// Metadata about the file referred to in `url`.
 |  | ||||||
|     #[serde(skip_serializing_if = "Option::is_none")] |  | ||||||
|     pub info: Option<Box<FileInfo>>, |  | ||||||
| 
 |  | ||||||
|     /// The URL to the file. Required if the file is unencrypted. The URL (typically
 |     /// The URL to the file. Required if the file is unencrypted. The URL (typically
 | ||||||
|     /// [MXC URI](https://matrix.org/docs/spec/client_server/r0.6.1#mxc-uri)) to the file.
 |     /// [MXC URI](https://matrix.org/docs/spec/client_server/r0.6.1#mxc-uri)) to the file.
 | ||||||
|     #[serde(skip_serializing_if = "Option::is_none")] |     #[serde(skip_serializing_if = "Option::is_none")] | ||||||
|     pub url: Option<MxcUri>, |     pub url: Option<MxcUri>, | ||||||
| 
 | 
 | ||||||
|  |     /// Metadata about the file referred to in `url`.
 | ||||||
|  |     #[serde(skip_serializing_if = "Option::is_none")] | ||||||
|  |     pub info: Option<Box<FileInfo>>, | ||||||
|  | 
 | ||||||
|     /// Required if file is encrypted. Information on the encrypted file.
 |     /// Required if file is encrypted. Information on the encrypted file.
 | ||||||
|     #[serde(skip_serializing_if = "Option::is_none")] |     #[serde(skip_serializing_if = "Option::is_none")] | ||||||
|     pub file: Option<Box<EncryptedFile>>, |     pub file: Option<Box<EncryptedFile>>, | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | impl FileMessageEventContent { | ||||||
|  |     /// Creates a new non-encrypted `FileMessageEventContent` with the given body, url and optional
 | ||||||
|  |     /// extra info.
 | ||||||
|  |     pub fn plain(body: String, url: MxcUri, info: Option<Box<FileInfo>>) -> Self { | ||||||
|  |         Self { body, filename: None, url: Some(url), info, file: None } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     /// Creates a new encrypted `FileMessageEventContent` with the given body and encrypted file.
 | ||||||
|  |     pub fn encrypted(body: String, file: EncryptedFile) -> Self { | ||||||
|  |         Self { body, filename: None, url: None, info: None, file: Some(Box::new(file)) } | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | 
 | ||||||
| /// Metadata about a file.
 | /// Metadata about a file.
 | ||||||
| #[derive(Clone, Debug, Deserialize, Serialize)] | #[derive(Clone, Debug, Deserialize, Serialize)] | ||||||
| pub struct FileInfo { | pub struct FileInfo { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user