With 2021 done, wanted to go back and put together a gist list of the input parsing, using standard crate Rust, for future reference
List of numbers
Day 1
Easy enough, leverage parse::<type> turbo fish for your correct type size:
List of commands
Day 2, Day 13 (element 2), Day 21. These vary a bit, based upon the command structure, number of options, but effectivly use split() or replacen() for each line.
Below is an example of two-part command, direction and magnituded, separated by space:
List of bits
Day 3. Bit packed integers
List of coordinates
List of coordinates: Day 13 (element 1), Day 19. Pretty common to leverage a struct, called Point for storing:
Single-line CSV of numbers
Day 4 (element 1), Day 6, Day 7
Matrix of numbers/characters
Day 4 (element 2), Day 9, Day 11, Day 15, Day 20 (element 2). Generally create single dim array and leverage calculation for row/column offsets.
Below is a matrix of characters:
List of pair of string sequences/expressions
Day 8, Day 10, Day 12, Day 14 (element 2), Day 18. These are pretty specific to the implementation, but vary from above
Single line sequence/expression
Day 14 (element 1), Day 16, Day 17, Day 20 (element 1). Same. These are pretty specific to the implementation, but vary from above
Multi-element
Day 4, Day 13, Day 14, Day 19, Day 20. Just combinations of the above