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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
use ;
/// Returns the filename of a Dylint library.
///
/// # Examples
///
/// ```
/// use dylint_internal::library_filename;
///
/// #[cfg(target_os = "linux")]
/// assert_eq!(
/// library_filename("foo", "stable-x86_64-unknown-linux-gnu"),
/// "libfoo@stable-x86_64-unknown-linux-gnu.so"
/// );
///
/// #[cfg(target_os = "macos")]
/// assert_eq!(
/// library_filename("foo", "stable-x86_64-apple-darwin"),
/// "libfoo@stable-x86_64-apple-darwin.dylib"
/// );
///
/// #[cfg(target_os = "windows")]
/// assert_eq!(
/// library_filename("foo", "stable-x86_64-pc-windows-msvc"),
/// "foo@stable-x86_64-pc-windows-msvc.dll"
/// );
/// ```
// smoelius: Build a standard rlib, and the filename will use snake case. `library_filename`'s
// behavior is consistent with that.
/// Parses the filename of a Dylint library path into a tuple of (name, toolchain).
///
/// # Examples
///
/// ```
/// use dylint_internal::parse_path_filename;
/// use std::path::Path;
///
/// #[cfg(target_os = "linux")]
/// assert_eq!(
/// parse_path_filename(Path::new("libfoo@stable-x86_64-unknown-linux-gnu.so")),
/// Some((
/// String::from("foo"),
/// String::from("stable-x86_64-unknown-linux-gnu")
/// ))
/// );
///
/// #[cfg(target_os = "macos")]
/// assert_eq!(
/// parse_path_filename(Path::new("libfoo@stable-x86_64-apple-darwin.dylib")),
/// Some((
/// String::from("foo"),
/// String::from("stable-x86_64-apple-darwin")
/// ))
/// );
///
/// #[cfg(target_os = "windows")]
/// assert_eq!(
/// parse_path_filename(Path::new("foo@stable-x86_64-pc-windows-msvc.dll")),
/// Some((
/// String::from("foo"),
/// String::from("stable-x86_64-pc-windows-msvc")
/// ))
/// );
/// ```