Skip to content

Commit 8062016

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 a89edba commit 8062016

30 files changed

+95
-141
lines changed

examples/parse.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
1717
use std::str::FromStr;
1818

19-
use miniscript::{descriptor::DescriptorType, Descriptor, DescriptorTrait};
19+
use miniscript::descriptor::DescriptorType;
20+
use miniscript::{Descriptor, DescriptorTrait};
2021

2122
fn main() {
2223
let desc = 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,14 +18,14 @@
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

25-
use super::{
26-
checksum::{desc_checksum, verify_checksum},
27-
DescriptorTrait,
28-
};
27+
use super::checksum::{desc_checksum, verify_checksum};
28+
use super::DescriptorTrait;
2929
use crate::expression::{self, FromTree};
3030
use crate::miniscript::context::ScriptContext;
3131
use crate::policy::{semantic, Liftable};

src/descriptor/key.rs

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

1210
use crate::{MiniscriptKey, ToPublicKey};
1311

src/descriptor/mod.rs

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

3332
use bitcoin::blockdata::witness::Witness;
3433
use bitcoin::util::address::WitnessVersion;
3534
use bitcoin::{self, secp256k1, Script};
3635

3736
use self::checksum::verify_checksum;
38-
use crate::expression;
39-
use crate::miniscript;
4037
use crate::miniscript::{Legacy, Miniscript, Segwitv0};
4138
use crate::{
42-
BareCtx, Error, ForEach, ForEachKey, MiniscriptKey, Satisfier, ToPublicKey, TranslatePk,
43-
TranslatePk2,
39+
expression, miniscript, BareCtx, Error, ForEach, ForEachKey, MiniscriptKey, Satisfier,
40+
ToPublicKey, TranslatePk, TranslatePk2,
4441
};
4542

4643
// Directly export from lib.rs, exporting the trait here causes conflicts in this file
@@ -874,10 +871,9 @@ mod tests {
874871
use super::*;
875872
use crate::descriptor::key::Wildcard;
876873
use crate::descriptor::{DescriptorPublicKey, DescriptorSecretKey, DescriptorXKey, SinglePub};
877-
use crate::hex_script;
878874
#[cfg(feature = "compiler")]
879875
use crate::policy;
880-
use crate::{Descriptor, DummyKey, Error, Miniscript, Satisfier, TranslatePk2};
876+
use crate::{hex_script, Descriptor, DummyKey, Error, Miniscript, Satisfier, TranslatePk2};
881877

882878
type StdDescriptor = Descriptor<PublicKey>;
883879
const TEST_PK: &'static str =

src/descriptor/pretaproot.rs

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
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

8-
use super::{checksum::verify_checksum, Bare, Pkh, Sh, Wpkh, Wsh};
6+
use super::checksum::verify_checksum;
7+
use super::{Bare, Pkh, Sh, Wpkh, Wsh};
98
use crate::{expression, DescriptorTrait, Error, MiniscriptKey, Satisfier, ToPublicKey};
109

1110
/// Script descriptor
@@ -242,10 +241,8 @@ pub(crate) mod traits {
242241
use bitcoin::Script;
243242

244243
use super::PreTaprootDescriptor;
245-
use crate::{
246-
descriptor::{Pkh, Sh, Wpkh, Wsh},
247-
DescriptorTrait, MiniscriptKey, ToPublicKey,
248-
};
244+
use crate::descriptor::{Pkh, Sh, Wpkh, Wsh};
245+
use crate::{DescriptorTrait, MiniscriptKey, ToPublicKey};
249246

250247
/// A general trait for Pre taproot bitcoin descriptor.
251248
/// Similar to [`DescriptorTrait`], but `explicit_script` and `script_code` methods cannot fail

src/descriptor/segwitv0.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,13 @@
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

23-
use super::{
24-
checksum::{desc_checksum, verify_checksum},
25-
DescriptorTrait, SortedMultiVec,
26-
};
24+
use super::checksum::{desc_checksum, verify_checksum};
25+
use super::{DescriptorTrait, SortedMultiVec};
2726
use crate::expression::{self, FromTree};
2827
use crate::miniscript::context::{ScriptContext, ScriptContextError};
2928
use crate::policy::{semantic, Liftable};

src/descriptor/sh.rs

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,21 @@
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

25-
use super::{
26-
checksum::{desc_checksum, verify_checksum},
27-
DescriptorTrait, SortedMultiVec, Wpkh, Wsh,
28-
};
27+
use super::checksum::{desc_checksum, verify_checksum};
28+
use super::{DescriptorTrait, SortedMultiVec, Wpkh, Wsh};
2929
use crate::expression::{self, FromTree};
3030
use crate::miniscript::context::ScriptContext;
3131
use crate::policy::{semantic, Liftable};
32-
use crate::push_opcode_size;
3332
use crate::util::{varint_len, witness_to_scriptsig};
3433
use crate::{
35-
Error, ForEach, ForEachKey, Legacy, Miniscript, MiniscriptKey, Satisfier, Segwitv0,
36-
ToPublicKey, TranslatePk,
34+
push_opcode_size, Error, ForEach, ForEachKey, Legacy, Miniscript, MiniscriptKey, Satisfier,
35+
Segwitv0, ToPublicKey, TranslatePk,
3736
};
3837

3938
/// A Legacy p2sh Descriptor

src/descriptor/sortedmulti.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +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;
2224

23-
use crate::expression;
24-
use crate::miniscript::{
25-
self, context::ScriptContext, decode::Terminal, limits::MAX_PUBKEYS_PER_MULTISIG,
26-
};
27-
use crate::policy;
28-
use crate::script_num_size;
25+
use crate::miniscript::context::ScriptContext;
26+
use crate::miniscript::decode::Terminal;
27+
use crate::miniscript::limits::MAX_PUBKEYS_PER_MULTISIG;
2928
use crate::{
30-
errstr, Error, ForEach, ForEachKey, Miniscript, MiniscriptKey, Satisfier, ToPublicKey,
29+
errstr, expression, miniscript, policy, script_num_size, Error, ForEach, ForEachKey,
30+
Miniscript, MiniscriptKey, Satisfier, ToPublicKey,
3131
};
3232

3333
/// Contents of a "sortedmulti" descriptor

src/descriptor/tr.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
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::{
@@ -13,15 +13,15 @@ use bitcoin::util::taproot::{
1313
use bitcoin::{self, secp256k1, Script};
1414

1515
use super::checksum::{desc_checksum, verify_checksum};
16-
use crate::errstr;
1716
use crate::expression::{self, FromTree};
1817
use crate::miniscript::Miniscript;
1918
use crate::policy::semantic::Policy;
2019
use crate::policy::Liftable;
2120
use crate::util::{varint_len, witness_size};
22-
use crate::Tap;
23-
use crate::{DescriptorTrait, ForEach, ForEachKey, Satisfier, ToPublicKey, TranslatePk};
24-
use crate::{Error, MiniscriptKey};
21+
use crate::{
22+
errstr, DescriptorTrait, Error, ForEach, ForEachKey, MiniscriptKey, Satisfier, Tap,
23+
ToPublicKey, TranslatePk,
24+
};
2525

2626
/// A Taproot Tree representation.
2727
// Hidden leaves are not yet supported in descriptor spec. Conceptually, it should

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 crate::errstr;
21-
use crate::Error;
22-
use crate::MAX_RECURSION_DEPTH;
20+
use crate::{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 & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ use bitcoin::util::taproot::{ControlBlock, TAPROOT_ANNEX_PREFIX};
1919

2020
use super::{stack, BitcoinKey, Error, Stack, TypedHash160};
2121
use crate::miniscript::context::{NoChecks, ScriptContext};
22-
use crate::{BareCtx, Legacy, Segwitv0, Tap};
23-
use crate::{Miniscript, MiniscriptKey};
22+
use crate::{BareCtx, Legacy, Miniscript, MiniscriptKey, Segwitv0, Tap};
2423

2524
/// Attempts to parse a slice as a Bitcoin public key, checking compressedness
2625
/// if asked to, but otherwise dropping it

src/interpreter/mod.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,7 @@ use bitcoin::{self, secp256k1, TxOut};
3030

3131
use crate::miniscript::context::NoChecks;
3232
use crate::miniscript::ScriptContext;
33-
use crate::Miniscript;
34-
use crate::Terminal;
35-
use crate::{Descriptor, ToPublicKey};
33+
use crate::{Descriptor, Miniscript, Terminal, ToPublicKey};
3634

3735
mod error;
3836
mod inner;
@@ -1037,9 +1035,7 @@ mod tests {
10371035
use super::inner::ToNoChecks;
10381036
use super::*;
10391037
use crate::miniscript::context::NoChecks;
1040-
use crate::Miniscript;
1041-
use crate::MiniscriptKey;
1042-
use crate::ToPublicKey;
1038+
use crate::{Miniscript, MiniscriptKey, ToPublicKey};
10431039

10441040
fn setup_keys_sigs(
10451041
n: usize,

src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,8 @@ use std::{error, fmt, hash, str};
114114
use bitcoin::blockdata::{opcodes, script};
115115
use bitcoin::hashes::{hash160, sha256, Hash};
116116

117-
pub use crate::descriptor::pretaproot::{traits::PreTaprootDescriptorTrait, PreTaprootDescriptor};
117+
pub use crate::descriptor::pretaproot::traits::PreTaprootDescriptorTrait;
118+
pub use crate::descriptor::pretaproot::PreTaprootDescriptor;
118119
pub use crate::descriptor::{Descriptor, DescriptorPublicKey, DescriptorTrait};
119120
pub use crate::interpreter::Interpreter;
120121
pub use crate::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 crate::error;
2423
use crate::miniscript::iter::PkPkh;
25-
use crate::{Miniscript, MiniscriptKey, ScriptContext};
24+
use crate::{error, Miniscript, MiniscriptKey, ScriptContext};
2625

2726
/// Possible reasons Miniscript guarantees can fail
2827
/// We currently mark Miniscript as Non-Analyzable if

src/miniscript/astelem.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,13 @@ use bitcoin::blockdata::{opcodes, script};
2727
use bitcoin::hashes::hex::FromHex;
2828
use bitcoin::hashes::{hash160, ripemd160, sha256, sha256d, Hash};
2929

30-
use crate::errstr;
31-
use crate::expression;
3230
use crate::miniscript::context::SigType;
3331
use crate::miniscript::types::{self, Property};
3432
use crate::miniscript::ScriptContext;
35-
use crate::script_num_size;
3633
use crate::util::MsKeyBuilder;
3734
use crate::{
38-
Error, ForEach, ForEachKey, Miniscript, MiniscriptKey, Terminal, ToPublicKey, TranslatePk,
35+
errstr, expression, script_num_size, Error, ForEach, ForEachKey, Miniscript, MiniscriptKey,
36+
Terminal, ToPublicKey, TranslatePk,
3937
};
4038

4139
impl<Pk: MiniscriptKey, Ctx: ScriptContext> Terminal<Pk, Ctx> {

src/miniscript/context.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,7 @@ use crate::miniscript::limits::{
2525
};
2626
use crate::miniscript::types;
2727
use crate::util::witness_to_scriptsig;
28-
use crate::Error;
29-
use crate::{Miniscript, MiniscriptKey, Terminal};
28+
use crate::{Error, Miniscript, MiniscriptKey, Terminal};
3029

3130
/// Error for Script Context
3231
#[derive(Clone, PartialEq, Eq, Debug)]

src/miniscript/decode.rs

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

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

src/miniscript/mod.rs

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,7 @@ pub use crate::miniscript::context::ScriptContext;
5151
use crate::miniscript::decode::Terminal;
5252
use crate::miniscript::types::extra_props::ExtData;
5353
use crate::miniscript::types::Type;
54-
use crate::MiniscriptKey;
55-
use crate::{expression, Error, ForEach, ForEachKey, ToPublicKey, TranslatePk};
54+
use crate::{expression, Error, ForEach, ForEachKey, MiniscriptKey, ToPublicKey, TranslatePk};
5655

5756
#[cfg(test)]
5857
mod ms_tests;
@@ -479,15 +478,14 @@ mod tests {
479478
use bitcoin::util::taproot::TapLeafHash;
480479
use bitcoin::{self, secp256k1};
481480

482-
use super::{Miniscript, ScriptContext};
483-
use super::{Segwitv0, Tap};
484-
use crate::hex_script;
481+
use super::{Miniscript, ScriptContext, Segwitv0, Tap};
485482
use crate::miniscript::types::{self, ExtData, Property, Type};
486483
use crate::miniscript::Terminal;
487484
use crate::policy::Liftable;
488-
use crate::TranslatePk2;
489-
use crate::{DummyKey, DummyKeyHash, MiniscriptKey, TranslatePk, TranslatePk1};
490-
use crate::{Satisfier, ToPublicKey};
485+
use crate::{
486+
hex_script, DummyKey, DummyKeyHash, MiniscriptKey, Satisfier, ToPublicKey, TranslatePk,
487+
TranslatePk1, TranslatePk2,
488+
};
491489

492490
type Segwitv0Script = Miniscript<bitcoin::PublicKey, Segwitv0>;
493491
type Tapscript = Miniscript<bitcoin::secp256k1::XOnlyPublicKey, Tap>;

0 commit comments

Comments
 (0)