File: visibility.rs

package info (click to toggle)
rust-easy-ext 1.0.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 284 kB
  • sloc: makefile: 2
file content (42 lines) | stat: -rw-r--r-- 923 bytes parent folder | download
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
// SPDX-License-Identifier: Apache-2.0 OR MIT

mod foo {
    use easy_ext::ext;

    #[ext(StrExt1)]
    impl str {
        fn method1(&self, pat: &str) -> String {
            self.replace(pat, "_")
        }
    }

    #[ext(StrExt2)]
    pub(self) impl str {
        fn method2(&self, pat: &str) -> String {
            self.replace(pat, "_")
        }
    }

    pub mod bar {
        use easy_ext::ext;

        #[ext(StrExt3)]
        pub(super) impl str {
            fn method3(&self, pat: &str) -> String {
                self.replace(pat, "_")
            }
        }
    }

    #[allow(unused_imports)]
    use bar::StrExt3;
}

fn main() {
    #[rustfmt::skip]
    use foo::StrExt1; //~ ERROR trait `StrExt1` is private [E0603]
    #[rustfmt::skip]
    use foo::StrExt2; //~ ERROR trait `StrExt2` is private [E0603]
    #[rustfmt::skip]
    use foo::bar::StrExt3; //~ ERROR trait `StrExt2` is private [E0603]
}