Skip to content

chore: add rustfmt config #181

@steph-rs

Description

@steph-rs

Currently, imports are not consistently organized and can be verbose when importing multiple items from the same crate, like in flashblocks-rpc/src/state.rs:

use crate::metrics::Metrics;
use crate::pending_blocks::{PendingBlocks, PendingBlocksBuilder};
use crate::rpc::{FlashblocksAPI, PendingBlocksAPI};
use crate::subscription::{Flashblock, FlashblocksReceiver};
use alloy_consensus::transaction::{Recovered, SignerRecoverable, TransactionMeta};
use alloy_consensus::{Header, TxReceipt};
use alloy_eips::BlockNumberOrTag;
use alloy_primitives::map::foldhash::HashMap;
use alloy_primitives::{Address, B256, BlockNumber, Bytes, Sealable, U256};
use alloy_rpc_types::{TransactionTrait, Withdrawal};
use alloy_rpc_types_engine::{ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3};
use alloy_rpc_types_eth::state::StateOverride;
use alloy_rpc_types_eth::{Filter, Log};
...

I suggest adding additional configs: --config imports_granularity=Crate --config group_imports=StdExternalCrate so state.rs file will look smoother:

use alloy_consensus::{
    Header, TxReceipt,
    transaction::{Recovered, SignerRecoverable, TransactionMeta},
};
use alloy_eips::BlockNumberOrTag;
use alloy_primitives::{Address, B256, BlockNumber, Bytes, Sealable, U256, map::foldhash::HashMap};
use alloy_rpc_types::{TransactionTrait, Withdrawal};
use alloy_rpc_types_engine::{ExecutionPayloadV1, ExecutionPayloadV2, ExecutionPayloadV3};
use alloy_rpc_types_eth::{Filter, Log, state::StateOverride};
...

use crate::{
    metrics::Metrics,
    pending_blocks::{PendingBlocks, PendingBlocksBuilder},
    rpc::{FlashblocksAPI, PendingBlocksAPI},
    subscription::{Flashblock, FlashblocksReceiver},
};

ref:

https://rust-lang.github.io/rustfmt/?version=v1.8.0&search=#imports_granularity
https://rust-lang.github.io/rustfmt/?version=v1.8.0&search=#group_imports

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions