Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

stackable-versioned: Require inner module definitions to have the same visibility as the parent

Abierto
#1,028 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
45/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
rust
Área
tooling

Línea de trabajo

Comienza localizando la implementación stackable-versioned que procesa las definiciones de los módulos externo e interno. Añade una validación para que una visibilidad no coincidente produzca una advertencia o un error y, después, verifica el comportamiento con los ejemplos de módulos anidados descritos en el issue.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

As discussion with @Techassi, we should warn/error if the visibility of the inner module doesn't match the outer module.

The inner module ends up with the same visibility as the parent anyway, but it is confusing if it is not the same.

#[versioned(version(name = "v1alpha1"))]
pub mod versioned {

    // contents of this mod get merged with the generated `v1alpha` mod.
    // nothing unusual here, pub all the way
	pub mod v1alpha1 {
        pub use v1alpha1_impl::Error;
    }

}

Is equivalent to:

#[versioned(version(name = "v1alpha1"))]
pub mod versioned {

    // contents of this mod get merged with the generated `v1alpha` mod, 
    // with `pub` visibility (because of `pub mod versioned`).
    // 👇
	mod v1alpha1 {
        pub use v1alpha1_impl::Error;
    }

}

However, it appears confusing to the reader. Eg:

How can the pub use be of any use inside a private mod?

... with the answer being oh, the mod is actually pub mod because of pub mod versioned which leads to pub mod v1alpha being generated, which absorbs the contents of the mod v1alpha1 that you see in the source.

Lenguaje dominante
Rust
Estrellas
167
Forks
19
Merge medio
1 d 6 h
PR fusionados (30 d)
9

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de stackabletech/operator-rs

Todos los issues de stackabletech/operator-rs

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.