Advertisement
Guest User

Untitled

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