Advertisement
Guest User

Untitled

a guest
Mar 18th, 2019
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. extern crate regex;
  2. extern crate uuid;
  3.  
  4. use regex::Regex;
  5. use uuid::Uuid;
  6.  
  7. pub struct Player {
  8. match_id: Uuid,
  9. player_id: i64,
  10. mmr_change: i32,
  11. is_winner: bool
  12. }
  13.  
  14. pub fn generate_players(match_id: Uuid, command: &str) -> Vec<Player> {
  15. let (winners, losers) = split_players(command);
  16. let winners = get_ids(winners);
  17. let losers = get_ids(losers);
  18.  
  19. let mut players: Vec<Player> = vec![];
  20.  
  21. winners.into_iter().chain(losers.into_iter())
  22. .map(|id| {
  23. Player {
  24. match_id: match_id,
  25. player_id: id,
  26. mmr_change: 25,
  27. is_winner: true
  28. }
  29. }).collect()
  30. }
  31.  
  32. fn split_players(command: &str) -> (&str, &str) {
  33. let mut split = command.split("defeated");
  34. (split.next().unwrap(), split.next().unwrap())
  35. }
  36.  
  37. fn get_ids(command: &str) -> Vec<i64> {
  38. let re = Regex::new(r"<@(\d+)>").unwrap();
  39.  
  40. re.captures_iter(command)
  41. .map(|capture| capture[1].parse().unwrap())
  42. .collect()
  43.  
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement