fn grep_generic<R>(target: &str, reader: R) -> Result<()>
where R: BufRead
{
    for line_result in reader.lines() {
        let line = line_result?;
        if line.contains(target) {
            println!("{}", line);
        }
    }
    Ok()
}
/// Esta funcion es generica sobre el reader y lo utiliza para tener el metodo del trait BufRead
/// `lines()`
Esta funcion es generica sobre el reader y lo utiliza para tener el metodo del trait BufRead
`lines()`
Esta funcion es generica sobre el reader y lo utiliza para tener el metodo del trait BufRead ` lines () `
fn grep_generic<R>(target: &str, reader: R) -> Result<()>
where R: BufRead
{
    for line_result in reader.lines() {
        let line = line_result?;
        if line.contains(target) {
            println!("{}", line);
        }
    }
    Ok()
}
fn grep_generic < R > ( target : & str , reader : R ) -> Result < ( ) > where R : BufRead { for line_result in reader . lines ( ) { let line = line_result ? ; if line . contains ( target ) { println ! ( " " line ) ; } } Ok ( ) }
Esta funcion es generica sobre el reader y lo utiliza para tener el metodo del trait BufRead
`lines()`
Esta funcion es generica sobre el reader y lo utiliza para tener el metodo del trait BufRead ` lines () `
target
&str
reader
R
target
&str
reader
R