diff --git a/src/api/types.rs b/src/api/types.rs index 0fa51f2..f993fbe 100644 --- a/src/api/types.rs +++ b/src/api/types.rs @@ -4,7 +4,7 @@ https://discord.com/developers/docs . I do not feel like re-documenting all of this, as everything is already perfectly explained there. */ -use std::fs::File; +use std::{collections::HashMap, fs::File}; use serde::{Deserialize, Serialize}; @@ -849,20 +849,24 @@ pub struct DiscordFileAttachment { } impl DiscordFileAttachment { - pub fn new(filenames: &Vec, files: Vec) { - //-> Vec { - if filenames.len() != files.len() { - panic!("Your 'filenames' Vector has either more or less elements than your 'files' Vector.") - } + /** + Returns a [`Vec`], where [`DiscordFileAttachment`] represents a file + attachment according to Discord API spec (Unique name, filename and File). + # Arguments + * filename_file_map: A [`HashMap`], where + * key ([`String`]): Filename of the file + * value ([`File`]): A [`File`] object. + */ + pub fn new(filename_file_map: HashMap) -> Vec { let mut return_vec: Vec = Vec::new(); let mut counter = 0; - /*for _ in 0..files.len() { + for (filename, file) in filename_file_map { return_vec.push(DiscordFileAttachment { name: format!("files[{}]", counter.to_string()), - filename: filenames.iter().next().unwrap().to_string(), - file: files.get(0).unwrap(), + filename, + file, }); } - return_vec*/ + return_vec } }