Learning rust by building a lexer