1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
use crate::params::Params; use crate::types::destination::Destination; use std::path::PathBuf; #[derive(Debug)] pub struct File { pub path: PathBuf, pub destination: Destination, params: Params, } impl File { pub fn new(path: &str, destination: Destination) -> Self { let path = path.to_owned(); let path = PathBuf::from(path); let mut params = Params::new(); if matches!(destination, Destination::AudioMessage) { params.add_param("type", "audio_message"); } Self { path, destination, params, } } pub fn add_param(&mut self, key: &str, value: &str) { self.params.add_param(key, value); } }