View taproot.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Bitcoin Dev Kit | |
// Written in 2021 by Alekos Filini <alekos.filini@gmail.com> | |
// | |
// Copyright (c) 2020-2021 Bitcoin Dev Kit Developers | |
// | |
// This file is licensed under the Apache License, Version 2.0 <LICENSE-APACHE | |
// or http://www.apache.org/licenses/LICENSE-2.0> or the MIT license | |
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your option. | |
// You may not use this file except in accordance with one or both of these | |
// licenses. |
View main.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#[derive(Debug)] | |
struct A { | |
val: u32, | |
} | |
#[derive(Debug)] | |
struct B { | |
val: String, | |
} |
View main.rs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use std::collections::BTreeMap; | |
#[derive(Debug)] | |
struct LiquidAmount(BTreeMap<String, u64>); | |
type BitcoinAmount = u64; | |
macro_rules! liquid_amount { | |
( $( $key:expr => $val:expr ),* ) => {{ | |
let mut map = BTreeMap::new(); | |
$( *map.entry($key.into()).or_insert(0) += $val; )* |