Hex Artifact Content
Logged in as anonymous

Artifact a838fcbd923acfff382403242f369d9c45531264825bf8fca9852642e282378b:


0000: 75 73 65 20 63 72 61 74 65 3a 3a 43 75 72 73 6f  use crate::Curso
0010: 72 3b 0a 0a 75 73 65 20 6c 61 7a 79 5f 73 74 61  r;..use lazy_sta
0020: 74 69 63 3a 3a 6c 61 7a 79 5f 73 74 61 74 69 63  tic::lazy_static
0030: 3b 0a 75 73 65 20 72 65 67 65 78 3a 3a 52 65 67  ;.use regex::Reg
0040: 65 78 3b 0a 0a 6c 61 7a 79 5f 73 74 61 74 69 63  ex;..lazy_static
0050: 21 20 7b 0a 09 70 75 62 20 73 74 61 74 69 63 20  ! {..pub static 
0060: 72 65 66 20 52 45 5f 53 50 45 43 49 41 4c 3a 20  ref RE_SPECIAL: 
0070: 52 65 67 65 78 20 3d 20 52 65 67 65 78 3a 3a 6e  Regex = Regex::n
0080: 65 77 28 72 22 28 5b 5c 2d 5f 2a 5c 5b 5c 5d 28  ew(r"([\-_*\[\](
0090: 29 7e 60 3e 23 2b 7c 7b 7d 5c 2e 21 5d 29 22 29  )~`>#+|{}\.!])")
00a0: 2e 75 6e 77 72 61 70 28 29 3b 0a 09 70 75 62 20  .unwrap();..pub 
00b0: 73 74 61 74 69 63 20 72 65 66 20 52 45 5f 44 4f  static ref RE_DO
00c0: 4d 41 49 4e 3a 20 52 65 67 65 78 20 3d 20 52 65  MAIN: Regex = Re
00d0: 67 65 78 3a 3a 6e 65 77 28 72 22 5e 5b 61 2d 7a  gex::new(r"^[a-z
00e0: 30 2d 39 5d 28 5b 2d 61 2d 7a 30 2d 39 5d 2a 5b  0-9]([-a-z0-9]*[
00f0: 61 2d 7a 30 2d 39 5d 29 3f 28 5c 2e 5b 61 2d 7a  a-z0-9])?(\.[a-z
0100: 30 2d 39 5d 28 5b 2d 61 2d 7a 30 2d 39 5d 2a 5b  0-9]([-a-z0-9]*[
0110: 61 2d 7a 30 2d 39 5d 29 3f 29 2a 24 22 29 2e 75  a-z0-9])?)*$").u
0120: 6e 77 72 61 70 28 29 3b 0a 7d 0a 0a 2f 2f 2f 20  nwrap();.}../// 
0130: 60 41 74 74 61 63 68 6d 65 6e 74 60 20 6f 62 6a  `Attachment` obj
0140: 65 63 74 20 74 6f 20 73 74 6f 72 65 20 6e 75 6d  ect to store num
0150: 62 65 72 20 61 74 74 61 63 68 6d 65 6e 74 20 64  ber attachment d
0160: 61 74 61 20 61 6e 64 20 63 6f 72 72 65 73 70 6f  ata and correspo
0170: 6e 64 69 6e 67 20 66 69 6c 65 20 6e 61 6d 65 0a  nding file name.
0180: 23 5b 64 65 72 69 76 65 28 44 65 62 75 67 29 5d  #[derive(Debug)]
0190: 0a 70 75 62 20 73 74 72 75 63 74 20 41 74 74 61  .pub struct Atta
01a0: 63 68 6d 65 6e 74 20 7b 0a 09 70 75 62 20 64 61  chment {..pub da
01b0: 74 61 3a 20 43 75 72 73 6f 72 3c 56 65 63 3c 75  ta: Cursor<Vec<u
01c0: 38 3e 3e 2c 0a 09 70 75 62 20 6e 61 6d 65 3a 20  8>>,..pub name: 
01d0: 53 74 72 69 6e 67 2c 0a 7d 0a                    String,.}.