Misunderstanding Jump from 1.4->1.5+
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- rust
- Área
- cli, documentation
Línea de trabajo
Lee los capítulos 1.3, 1.4 y 1.5 enlazados del tutorial y compara cómo evolucionan main.rs y el ejemplo de línea de comandos entre ellos. Determina la progresión prevista y actualiza el tutorial para que el material posterior sobre salida, logging y barra de progreso se conecte coherentemente con la aplicación anterior; al terminar, los capítulos deben formar una guía continua y clara.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
First, thank you for taking the time to create this guide (and reading this). :-)
It was my understanding from the beginning that the guide would guide one towards creating a simple Command Line App, but after 1.4 there doesn't appear to be much cohesion. I assume I am missing something here, but 1.5 (and further) changes main.rs in a way that it doesn't appear to function around the same logic built/defined before 1.4.
#![allow(unused)]
use clap::Parser;
/// Search for a pattern in a file and display the lines that contain it.
#[derive(Parser)]
struct Cli {
/// The pattern to look for
pattern: String,
/// The path to the file to read
path: std::path::PathBuf,
}
fn main() {
let args = Cli::parse();
let content = std::fs::read_to_string(&args.path).expect("could not read file");
for line in content.lines() {
if line.contains(&args.pattern) {
println!("{}", line);
}
}
}
use anyhow::{Context, Result};
fn main() -> Result<()> {
let path = "test.txt";
let content = std::fs::read_to_string(path)
.with_context(|| format!("could not read file `{}`", path))?;
println!("file content: {}", content);
Ok(())
}
1.5 gives an example of a bunch of nice tools to add (such as logging and progress bars), but as mentioned earlier, there is no cohesion with the early development; no addition to the previously constructed chapters.
Printer Performance
#![allow(unused)]
fn main() {
use std::io::{self, Write};
let stdout = io::stdout(); // get the global stdout entity
let mut handle = stdout.lock(); // acquire a lock on it
writeln!(handle, "foo: {}", 42); // add `?` if you care about errors here
}
Progress Bar
fn main() {
let pb = indicatif::ProgressBar::new(100);
for i in 0..100 {
do_hard_work();
pb.println(format!("[+] finished #{}", i));
pb.inc(1);
}
pb.finish_with_message("done");
}
Logging
use log::{info, warn};
fn main() {
env_logger::init();
info!("starting up");
warn!("oops, nothing implemented!");
}
- Lenguaje dominante
- Rust
- Estrellas
- 1.1k
- Forks
- 122
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de rust-cli/book
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 68/100
-
Broken Discord linkAbierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 35/100
-
documentation
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 35/100
-
2.2. Using config files feedbackAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
Todos los issues de rust-cli/book
Issues similares
-
awaiting-response bug needs-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
wildcard/caro#1562 · 1 comentario ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
objectionary/sodg.rs#301 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
HakanSeven12/OpenCADStudio#1706 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
[Bug] Completion info popup (.cm-completionInfo) ignores the configured editor fontPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abiertobug user-priority/P2
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
t8y2/dbx#11718 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
rescript-lang/rescript#8765 ·
Los mantenedores suelen responder en 1 día