### トランザクション
use std::collections::HashMap;
fn main(){
    let transaction = HashMap::from([
        ("Time", "2024-12-20 13:58"),
        ("sender", "A"),
        ("receiver", "B"),
        ("amount", "1")
    ]);
    for (k, v) in &transaction {
        println!("{} {}", k, v);
    }
}
Hashmapだとkey, valueが全て同じ型になってしまうので、構造体を使用する。
#[derive(Debug)]
struct Transaction {
    time: String,
    sender: String,
    receiver: String,
    amount: i32,
}
fn main(){
    let t1 = Transaction {time: "2024-12-20 13:58".to_string(), sender: "A".to_string(), receiver: "B".to_string(), amount: 10};
    println!("{:?}", t1);
}
$ ./main
Transaction { time: “2024-12-20 13:58”, sender: “A”, receiver: “B”, amount: 10 }
複数トランザクションの場合は配列を使用する
fn main(){
    let t1 = Transaction {time: "2024-12-20 13:58".to_string(), sender: "A".to_string(), receiver: "B".to_string(), amount: 10};
    let t2 = Transaction {time: "2024-12-21 13:58".to_string(), sender: "B".to_string(), receiver: "C".to_string(), amount: 5};
    let transactions = [t1, t2];
    println!("{:?}", transactions);
}
### Rustで日時を扱う
use chrono::{Utc, Local, DateTime, Date};
fn main(){
    let utc_datetime: DateTime<Utc> = Utc::now();
    let utc_date: Date<Utc> = Utc::today();
    println!("{}", utc_datetime);
    println!("{}", utc_date);
}
2024-12-20 05:46:43.775637762 UTC
2024-12-20UTC
crateを使うには、Cargo.tomlを利用する
[package] name = "hoge" version = "0.1.0" edition = "2021" [dependencies] chrono = "0.4.23"
凄い基本的なことを書くだけでも時間がかかりますな。。
use chrono::{Utc, Local, DateTime, Date};
#[derive(Debug)]
struct Transaction {
    time: String,
    sender: String,
    receiver: String,
    amount: i32,
}
fn main(){
    let utc_datetime: DateTime<Utc> = Utc::now();
    let t1 = Transaction {time: utc_datetime.to_string(), sender: "A".to_string(), receiver: "B".to_string(), amount: 10};
    let t2 = Transaction {time: utc_datetime.to_string(), sender: "B".to_string(), receiver: "C".to_string(), amount: 5};
    let transactions = [t1, t2];
    println!("{:?}", transactions);
}
[Transaction { time: “2024-12-21 06:09:35.567867379 UTC”, sender: “A”, receiver: “B”, amount: 10 }, Transaction { time: “2024-12-21 06:09:35.567867379 UTC”, sender: “B”, receiver: “C”, amount: 5 }]
