Print rows in original order Change from a Vec to VecDeque

AfoHT
Nov 27, 2021, 11:58 PM
J2PVPX3PMJTSF6WGVBVOGF6ZAKRII5OXQ7XZPPV44NL4EUWJGG3QC

Dependencies

  • [2] ZKSXZMQF Provide feedback when done
  • [3] 4BWPI66V Add first mapping attempt
  • [4] YFZX4FSZ Generate transaction numbers
  • [5] LDUI5PR2 Change to using STDIO
  • [6] ZEUBLA35 Do not have subaccounts for Brukskonto
  • [7] QDZOD3MN Able to parse CSV
  • [8] R5EWGEJK Add account actions, default to Brukskonto
  • [9] RX4WJ4WA Rust project metadata
  • [10] ZQNDNT3K Handle argument errors, provide help
  • [11] BGZQCBP7 Update to Edition 2021, bump to 0.2.0

Change contents

  • edit in src/main.rs at line 2
    [3.24]
    [3.24]
    use std::collections::VecDeque;
  • edit in src/main.rs at line 59
    [3.350]
    [3.350]
    // Truncates any pre-existing file
  • replacement in src/main.rs at line 87
    [3.231][3.468:532]()
    let mut transaction_buffer: Vec<[String; 16]> = Vec::new();
    [3.231]
    [3.532]
    let mut transaction_buffer: VecDeque<[String; 16]> = VecDeque::new();
  • replacement in src/main.rs at line 151
    [3.1204][3.1204:1238]()
    transaction_buffer.push([
    [3.1204]
    [3.563]
    transaction_buffer.push_back([
  • replacement in src/main.rs at line 200
    [3.1568][3.1568:1601]()
    buf: &mut Vec<[String; 16]>,
    [3.1568]
    [3.1601]
    buf: &mut VecDeque<[String; 16]>,
  • replacement in src/main.rs at line 202
    [3.1635][3.1635:1702](),[3.1702][3.1702:1740](),[3.1740][3.1740:1762]()
    let mut counter = 1;
    while let Some(mut row) = buf.pop() {
    row[2] = counter.to_string();
    counter += 1;
    [3.1635]
    [3.1762]
    // Iterate in reverse order to assign correct transaction_number
    for (counter, row) in buf.iter_mut().rev().enumerate() {
    let transaction_number = counter + 1;
    row[2] = transaction_number.to_string();
    }
    // Write CSV in original order, most recent first
    while let Some(row) = buf.pop_front() {
  • replacement in src/main.rs at line 216
    [3.64][3.64:82]()
    println!("");
    [3.64]
    [3.82]
    println!();
  • replacement in src/main.rs at line 218
    [3.106][3.106:124]()
    println!("");
    [3.106]
    [3.124]
    println!();
  • replacement in src/main.rs at line 222
    [3.312][3.312:330]()
    println!("");
    [3.312]
    [3.330]
    println!();
  • replacement in src/main.rs at line 225
    [3.415][3.415:433]()
    println!("");
    [3.415]
    [3.433]
    println!();
  • replacement in Cargo.toml at line 3
    [3.73][2.41:59]()
    version = "0.3.2"
    [3.73]
    [3.91]
    version = "0.3.3"
  • replacement in Cargo.lock at line 41
    [3.1720][3.669:687]()
    version = "0.3.1"
    [3.1720]
    [3.1738]
    version = "0.3.3"