xref: /aosp_15_r20/external/bazelbuild-rules_rust/examples/per_platform_printer/lib.rs (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
1 mod print_generic;
2 
3 #[cfg(target_os = "linux")]
4 mod print_linux;
5 
6 #[cfg(target_os = "macos")]
7 mod print_macos;
8 
9 #[cfg(target_os = "windows")]
10 mod print_windows;
11 
12 #[cfg(target_os = "linux")]
print() -> Vec<String>13 pub fn print() -> Vec<String> {
14     vec![print_generic::print(), print_linux::print()]
15 }
16 
17 #[cfg(target_os = "macos")]
print() -> Vec<String>18 pub fn print() -> Vec<String> {
19     vec![print_generic::print(), print_macos::print()]
20 }
21 
22 #[cfg(target_os = "windows")]
print() -> Vec<String>23 pub fn print() -> Vec<String> {
24     vec![print_generic::print(), print_windows::print()]
25 }
26 
27 #[cfg(test)]
28 mod tests {
29     use super::*;
30 
31     #[test]
prints_correctly()32     fn prints_correctly() {
33         let outs = print();
34 
35         assert_eq!(
36             outs,
37             vec![
38                 "Hello Generic!",
39                 #[cfg(target_os = "linux")]
40                 "Hello Linux!",
41                 #[cfg(target_os = "macos")]
42                 "Hello MacOS!",
43                 #[cfg(target_os = "windows")]
44                 "Hello Windows!",
45             ]
46         );
47     }
48 }
49