Translate

domingo, 7 de enero de 2024

Visibilidad en Rust


Los módulos permiten definir la visibilidad :

  • Los elementos del módulo son privados por defecto (oculta los detalles de implementación).
  • Los elementos de padres y hermanos siempre están visibles.
  • En otras palabras, si un elemento es visible en el módulo foo, será visible en todos los descendientes de foo.


mod outer {

    fn private() {

        println!("outer::private");

    }


    pub fn public() {

        println!("outer::public");

    }


    mod inner {

        fn private() {

            println!("outer::inner::private");

        }


        pub fn public() {

            println!("outer::inner::public");

            super::private();

        }

    }

}


fn main() {

    outer::public();

}


Podemos utilizar la palabra clave pub para hacer públicos los módulos. Además, existen especificadores pub(...) avanzados para restringir el alcance de la visibilidad pública.