Skip to content

Commit dfc3e76

Browse files
committed
Configure imports_granularity
Configure `imports_granularity = "Module"`. The benefit of this option is that it increases uniformity in the code base over the default "Preserve" and also, from my personal experience, it tends to reduce the noise in diffs from adding/removing imports.
1 parent 3641a42 commit dfc3e76

31 files changed

+103
-150
lines changed

examples/parse.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ extern crate miniscript;
1919

2020
use std::str::FromStr;
2121

22-
use miniscript::{descriptor::DescriptorType, Descriptor, DescriptorTrait};
22+
use miniscript::descriptor::DescriptorType;
23+
use miniscript::{Descriptor, DescriptorTrait};
2324

2425
fn main() {
2526
let my_descriptor = miniscript::Descriptor::<bitcoin::PublicKey>::from_str(

rustfmt.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ fn_single_line = false
2727
where_single_line = false
2828
imports_indent = "Block"
2929
imports_layout = "Mixed"
30-
imports_granularity = "Preserve"
30+
imports_granularity = "Module" # Default "Preserve"
3131
group_imports = "StdExternalCrate" # Default "Preserve"
3232
reorder_imports = true
3333
reorder_modules = true

src/descriptor/bare.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@
1818
//! Also includes pk, and pkh descriptors
1919
//!
2020
21-
use std::{fmt, str::FromStr};
21+
use std::fmt;
22+
use std::str::FromStr;
2223

23-
use bitcoin::{self, blockdata::script, Script};
24+
use bitcoin::blockdata::script;
25+
use bitcoin::{self, Script};
2426
use expression::{self, FromTree};
2527
use miniscript::context::ScriptContext;
2628
use policy::{semantic, Liftable};
@@ -30,10 +32,8 @@ use {
3032
TranslatePk,
3133
};
3234

33-
use super::{
34-
checksum::{desc_checksum, verify_checksum},
35-
DescriptorTrait,
36-
};
35+
use super::checksum::{desc_checksum, verify_checksum};
36+
use super::DescriptorTrait;
3737

3838
/// Create a Bare Descriptor. That is descriptor that is
3939
/// not wrapped in sh or wsh. This covers the Pk descriptor

src/descriptor/key.rs

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
1-
use std::{error, fmt, str::FromStr};
2-
3-
use bitcoin::{
4-
self,
5-
hashes::Hash,
6-
hashes::{hex::FromHex, HashEngine},
7-
secp256k1,
8-
secp256k1::{Secp256k1, Signing},
9-
util::bip32,
10-
XOnlyPublicKey, XpubIdentifier,
11-
};
1+
use std::str::FromStr;
2+
use std::{error, fmt};
3+
4+
use bitcoin::hashes::hex::FromHex;
5+
use bitcoin::hashes::{Hash, HashEngine};
6+
use bitcoin::secp256k1::{Secp256k1, Signing};
7+
use bitcoin::util::bip32;
8+
use bitcoin::{self, secp256k1, XOnlyPublicKey, XpubIdentifier};
129
use {MiniscriptKey, ToPublicKey};
1310

1411
/// Single public key without any origin or range information

src/descriptor/mod.rs

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -23,20 +23,17 @@
2323
//! these with BIP32 paths, pay-to-contract instructions, etc.
2424
//!
2525
26-
use std::{collections::HashMap, sync::Arc};
27-
use std::{
28-
fmt,
29-
str::{self, FromStr},
30-
};
26+
use std::collections::HashMap;
27+
use std::fmt;
28+
use std::str::{self, FromStr};
29+
use std::sync::Arc;
3130

3231
use bitcoin::blockdata::witness::Witness;
3332
use bitcoin::{self, secp256k1, Script};
34-
use expression;
35-
use miniscript;
3633
use miniscript::{Legacy, Miniscript, Segwitv0};
3734
use {
38-
BareCtx, Error, ForEach, ForEachKey, MiniscriptKey, Satisfier, ToPublicKey, TranslatePk,
39-
TranslatePk2,
35+
expression, miniscript, BareCtx, Error, ForEach, ForEachKey, MiniscriptKey, Satisfier,
36+
ToPublicKey, TranslatePk, TranslatePk2,
4037
};
4138

4239
use self::checksum::verify_checksum;
@@ -839,10 +836,9 @@ mod tests {
839836
use descriptor::{
840837
DescriptorPublicKey, DescriptorSecretKey, DescriptorSinglePub, DescriptorXKey,
841838
};
842-
use hex_script;
843839
#[cfg(feature = "compiler")]
844840
use policy;
845-
use {Descriptor, DummyKey, Error, Miniscript, Satisfier, TranslatePk2};
841+
use {hex_script, Descriptor, DummyKey, Error, Miniscript, Satisfier, TranslatePk2};
846842

847843
use super::checksum::desc_checksum;
848844
use super::tr::Tr;

src/descriptor/pretaproot.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
use std::{
2-
fmt,
3-
str::{self, FromStr},
4-
};
1+
use std::fmt;
2+
use std::str::{self, FromStr};
53

64
use bitcoin::{self, Script};
75
use {expression, DescriptorTrait, Error, MiniscriptKey, Satisfier, ToPublicKey};
86

9-
use super::{checksum::verify_checksum, Bare, Pkh, Sh, Wpkh, Wsh};
7+
use super::checksum::verify_checksum;
8+
use super::{Bare, Pkh, Sh, Wpkh, Wsh};
109

1110
/// Script descriptor
1211
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
@@ -240,10 +239,8 @@ serde_string_impl_pk!(PreTaprootDescriptor, "a pre-taproot script descriptor");
240239
// Have the trait in a separate module to avoid conflicts
241240
pub(crate) mod traits {
242241
use bitcoin::Script;
243-
use {
244-
descriptor::{Pkh, Sh, Wpkh, Wsh},
245-
DescriptorTrait, MiniscriptKey, ToPublicKey,
246-
};
242+
use descriptor::{Pkh, Sh, Wpkh, Wsh};
243+
use {DescriptorTrait, MiniscriptKey, ToPublicKey};
247244

248245
use super::PreTaprootDescriptor;
249246

src/descriptor/segwitv0.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
//! Implementation of Segwit Descriptors. Contains the implementation
1717
//! of wsh, wpkh and sortedmulti inside wsh.
1818
19-
use std::{fmt, str::FromStr};
19+
use std::fmt;
20+
use std::str::FromStr;
2021

2122
use bitcoin::{self, Script};
2223
use expression::{self, FromTree};
@@ -28,10 +29,8 @@ use {
2829
TranslatePk,
2930
};
3031

31-
use super::{
32-
checksum::{desc_checksum, verify_checksum},
33-
DescriptorTrait, SortedMultiVec,
34-
};
32+
use super::checksum::{desc_checksum, verify_checksum};
33+
use super::{DescriptorTrait, SortedMultiVec};
3534
/// A Segwitv0 wsh descriptor
3635
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]
3736
pub struct Wsh<Pk: MiniscriptKey> {

src/descriptor/sh.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,22 @@
1818
//! sh(miniscript), and sh(wpkh)
1919
//!
2020
21-
use std::{fmt, str::FromStr};
21+
use std::fmt;
22+
use std::str::FromStr;
2223

23-
use bitcoin::{self, blockdata::script, Script};
24+
use bitcoin::blockdata::script;
25+
use bitcoin::{self, Script};
2426
use expression::{self, FromTree};
2527
use miniscript::context::ScriptContext;
2628
use policy::{semantic, Liftable};
27-
use push_opcode_size;
2829
use util::{varint_len, witness_to_scriptsig};
2930
use {
30-
Error, ForEach, ForEachKey, Legacy, Miniscript, MiniscriptKey, Satisfier, Segwitv0,
31-
ToPublicKey, TranslatePk,
31+
push_opcode_size, Error, ForEach, ForEachKey, Legacy, Miniscript, MiniscriptKey, Satisfier,
32+
Segwitv0, ToPublicKey, TranslatePk,
3233
};
3334

34-
use super::{
35-
checksum::{desc_checksum, verify_checksum},
36-
DescriptorTrait, SortedMultiVec, Wpkh, Wsh,
37-
};
35+
use super::checksum::{desc_checksum, verify_checksum};
36+
use super::{DescriptorTrait, SortedMultiVec, Wpkh, Wsh};
3837

3938
/// A Legacy p2sh Descriptor
4039
#[derive(Clone, Ord, PartialOrd, Eq, PartialEq, Hash)]

src/descriptor/sortedmulti.rs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,18 @@
1616
//! Implementation of sorted multi primitive for descriptors
1717
//!
1818
19-
use std::{fmt, marker::PhantomData, str::FromStr};
19+
use std::fmt;
20+
use std::marker::PhantomData;
21+
use std::str::FromStr;
2022

2123
use bitcoin::blockdata::script;
22-
use expression;
23-
use miniscript::{
24-
self, context::ScriptContext, decode::Terminal, limits::MAX_PUBKEYS_PER_MULTISIG,
24+
use miniscript::context::ScriptContext;
25+
use miniscript::decode::Terminal;
26+
use miniscript::limits::MAX_PUBKEYS_PER_MULTISIG;
27+
use {
28+
errstr, expression, miniscript, policy, script_num_size, Error, ForEach, ForEachKey,
29+
Miniscript, MiniscriptKey, Satisfier, ToPublicKey,
2530
};
26-
use policy;
27-
use script_num_size;
28-
use {errstr, Error, ForEach, ForEachKey, Miniscript, MiniscriptKey, Satisfier, ToPublicKey};
2931

3032
/// Contents of a "sortedmulti" descriptor
3133
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]

src/descriptor/tr.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,25 @@
11
// Tapscript
22

33
use std::cmp::{self, max};
4-
use std::hash;
4+
use std::str::FromStr;
55
use std::sync::{Arc, Mutex};
6-
use std::{fmt, str::FromStr};
6+
use std::{fmt, hash};
77

88
use bitcoin::blockdata::opcodes;
99
use bitcoin::util::taproot::{
1010
LeafVersion, TaprootBuilder, TaprootBuilderError, TaprootSpendInfo, TAPROOT_CONTROL_BASE_SIZE,
1111
TAPROOT_CONTROL_MAX_NODE_COUNT, TAPROOT_CONTROL_NODE_SIZE,
1212
};
1313
use bitcoin::{self, secp256k1, Script};
14-
use errstr;
1514
use expression::{self, FromTree};
1615
use miniscript::Miniscript;
1716
use policy::semantic::Policy;
1817
use policy::Liftable;
1918
use util::{varint_len, witness_size};
20-
use Tap;
21-
use {DescriptorTrait, ForEach, ForEachKey, Satisfier, ToPublicKey, TranslatePk};
22-
use {Error, MiniscriptKey};
19+
use {
20+
errstr, DescriptorTrait, Error, ForEach, ForEachKey, MiniscriptKey, Satisfier, Tap,
21+
ToPublicKey, TranslatePk,
22+
};
2323

2424
use super::checksum::{desc_checksum, verify_checksum};
2525

src/expression.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,7 @@
1717
1818
use std::str::FromStr;
1919

20-
use errstr;
21-
use Error;
22-
use MAX_RECURSION_DEPTH;
20+
use {errstr, Error, MAX_RECURSION_DEPTH};
2321

2422
#[derive(Debug)]
2523
/// A token of the form `x(...)` or `x`

src/interpreter/error.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414

1515
use std::{error, fmt};
1616

17-
use bitcoin::hashes::{hash160, hex::ToHex};
17+
use bitcoin::hashes::hash160;
18+
use bitcoin::hashes::hex::ToHex;
1819
use bitcoin::util::taproot;
1920
use bitcoin::{self, secp256k1};
2021

src/interpreter/inner.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,11 @@
1212
// If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
1313
//
1414

15-
use bitcoin;
1615
use bitcoin::blockdata::witness::Witness;
1716
use bitcoin::hashes::{hash160, sha256, Hash};
1817
use bitcoin::util::taproot::{ControlBlock, TAPROOT_ANNEX_PREFIX};
1918
use miniscript::context::{NoChecks, ScriptContext};
20-
use {BareCtx, Legacy, Segwitv0, Tap};
21-
use {Miniscript, MiniscriptKey};
19+
use {bitcoin, BareCtx, Legacy, Miniscript, MiniscriptKey, Segwitv0, Tap};
2220

2321
use super::{stack, BitcoinKey, Error, Stack, TypedHash160};
2422

src/interpreter/mod.rs

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,7 @@ use bitcoin::util::{sighash, taproot};
2929
use bitcoin::{self, secp256k1, TxOut};
3030
use miniscript::context::NoChecks;
3131
use miniscript::ScriptContext;
32-
use Miniscript;
33-
use Terminal;
34-
use {Descriptor, ToPublicKey};
32+
use {Descriptor, Miniscript, Terminal, ToPublicKey};
3533

3634
mod error;
3735
mod inner;
@@ -1030,13 +1028,10 @@ fn verify_sersig<'txin>(
10301028
#[cfg(test)]
10311029
mod tests {
10321030

1033-
use bitcoin;
10341031
use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d, Hash};
10351032
use bitcoin::secp256k1::{self, Secp256k1};
10361033
use miniscript::context::NoChecks;
1037-
use Miniscript;
1038-
use MiniscriptKey;
1039-
use ToPublicKey;
1034+
use {bitcoin, Miniscript, MiniscriptKey, ToPublicKey};
10401035

10411036
use super::inner::ToNoChecks;
10421037
use super::*;

src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,8 @@ use std::{error, fmt, hash, str};
121121

122122
use bitcoin::blockdata::{opcodes, script};
123123
use bitcoin::hashes::{hash160, sha256, Hash};
124-
pub use descriptor::pretaproot::{traits::PreTaprootDescriptorTrait, PreTaprootDescriptor};
124+
pub use descriptor::pretaproot::traits::PreTaprootDescriptorTrait;
125+
pub use descriptor::pretaproot::PreTaprootDescriptor;
125126
pub use descriptor::{Descriptor, DescriptorPublicKey, DescriptorTrait};
126127
pub use interpreter::Interpreter;
127128
pub use miniscript::context::{BareCtx, Legacy, ScriptContext, Segwitv0, Tap};

src/miniscript/analyzable.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,8 @@
2020
use std::collections::HashSet;
2121
use std::fmt;
2222

23-
use error;
2423
use miniscript::iter::PkPkh;
25-
use {Miniscript, MiniscriptKey, ScriptContext};
24+
use {error, Miniscript, MiniscriptKey, ScriptContext};
2625
/// Possible reasons Miniscript guarantees can fail
2726
/// We currently mark Miniscript as Non-Analyzable if
2827
/// 1. It is unsafe(does not require a digital signature to spend it)

src/miniscript/astelem.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,14 @@ use std::{fmt, str};
2626
use bitcoin::blockdata::{opcodes, script};
2727
use bitcoin::hashes::hex::FromHex;
2828
use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d, Hash};
29-
use errstr;
30-
use expression;
3129
use miniscript::context::SigType;
3230
use miniscript::types::{self, Property};
3331
use miniscript::ScriptContext;
34-
use script_num_size;
3532
use util::MsKeyBuilder;
36-
use {Error, ForEach, ForEachKey, Miniscript, MiniscriptKey, Terminal, ToPublicKey, TranslatePk};
33+
use {
34+
errstr, expression, script_num_size, Error, ForEach, ForEachKey, Miniscript, MiniscriptKey,
35+
Terminal, ToPublicKey, TranslatePk,
36+
};
3737

3838
impl<Pk: MiniscriptKey, Ctx: ScriptContext> Terminal<Pk, Ctx> {
3939
/// Internal helper function for displaying wrapper types; returns

src/miniscript/context.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414

1515
use std::{fmt, hash};
1616

17-
use bitcoin;
1817
use bitcoin::blockdata::constants::MAX_BLOCK_WEIGHT;
1918
use miniscript::limits::{
2019
MAX_OPS_PER_SCRIPT, MAX_PUBKEYS_PER_MULTISIG, MAX_SCRIPTSIG_SIZE, MAX_SCRIPT_ELEMENT_SIZE,
@@ -23,8 +22,7 @@ use miniscript::limits::{
2322
};
2423
use miniscript::types;
2524
use util::witness_to_scriptsig;
26-
use Error;
27-
use {Miniscript, MiniscriptKey, Terminal};
25+
use {bitcoin, Error, Miniscript, MiniscriptKey, Terminal};
2826

2927
use super::decode::ParseableKey;
3028

src/miniscript/decode.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,9 @@ use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d, Hash};
2626
use miniscript::lex::{Token as Tk, TokenIter};
2727
use miniscript::limits::MAX_PUBKEYS_PER_MULTISIG;
2828
use miniscript::types::extra_props::ExtData;
29-
use miniscript::types::Property;
30-
use miniscript::types::Type;
29+
use miniscript::types::{Property, Type};
3130
use miniscript::ScriptContext;
32-
use Error;
33-
use MiniscriptKey;
34-
use ToPublicKey;
35-
use {bitcoin, Miniscript};
31+
use {bitcoin, Error, Miniscript, MiniscriptKey, ToPublicKey};
3632

3733
fn return_none<T>(_: usize) -> Option<T> {
3834
None

0 commit comments

Comments
 (0)