Entradas

Mostrando entradas de abril, 2018

Rust, mutabilidad y recursión

Imagen
Se visualiza mejor (aquí)   con código completo Como ya he comentado en alguna ocasión, la mutabilidad no es vírica y en Rust se puede diseñar un sistema que evite la copia de forma explícita combinándola con el ownership . Este es un ejemplo de una función que recibe la propiedad de status y lo declara como mutable. Luego utilzamos un bucle for pub ( crate ) fn parse_literal < ' a >( mut status: Status< ' a >, literal: & ' a Literal< ' a >) -> Result < ' a > { for byte in literal. 0 . bytes () { status = parse_byte (status, byte) . map_err ( | st | Error :: from_status ( & st, & format! ( "parsing literal {}" , literal. 0 )))?; } Ok ((status, literal. 0 . to_string ())) }   No es una mala solución. Quizá debería haber quitado los lifetimes para dejar el ejemplo más sencillo. No es relevante para lo que estoy planteando aquí. Tampoco molesta ni es malo familiarizar