diff --git a/src/types/video.rs b/src/types/video.rs index c4f0a800..84de086a 100644 --- a/src/types/video.rs +++ b/src/types/video.rs @@ -35,3 +35,74 @@ pub struct Video { /// File size. pub file_size: Option, } + +impl Video { + pub fn new( + file_id: S1, + file_unique_id: S2, + width: u32, + height: u32, + duration: u32, + ) -> Self + where + S1: Into, + S2: Into, + { + Self { + file_id: file_id.into(), + file_unique_id: file_unique_id.into(), + width, + height, + duration, + thumb: None, + mime_type: None, + file_size: None, + } + } + + pub fn file_id(mut self, val: S) -> Self + where + S: Into, + { + self.file_id = val.into(); + self + } + + pub fn file_unique_id(mut self, val: S) -> Self + where + S: Into, + { + self.file_unique_id = val.into(); + self + } + + pub fn width(mut self, val: u32) -> Self { + self.width = val; + self + } + + pub fn height(mut self, val: u32) -> Self { + self.height = val; + self + } + + pub fn duration(mut self, val: u32) -> Self { + self.duration = val; + self + } + + pub fn thumb(mut self, val: PhotoSize) -> Self { + self.thumb = Some(val); + self + } + + pub fn mime_type(mut self, val: MimeWrapper) -> Self { + self.mime_type = Some(val); + self + } + + pub fn file_size(mut self, val: u32) -> Self { + self.file_size = Some(val); + self + } +}