Skip to content

Commit 4fc1ef6

Browse files
authored
fix(derive): hoist types out of traits (op-rs#781)
1 parent ac96fc2 commit 4fc1ef6

40 files changed

+236
-213
lines changed

Diff for: bin/client/src/l1/driver.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,17 @@ use alloy_rlp::Decodable;
1616
use core::fmt::Debug;
1717
use kona_derive::{
1818
attributes::StatefulAttributesBuilder,
19-
errors::{PipelineError, PipelineErrorKind, PipelineResult, ResetError},
19+
errors::{PipelineError, PipelineErrorKind, ResetError},
2020
pipeline::{DerivationPipeline, PipelineBuilder},
2121
sources::EthereumDataSource,
2222
stages::{
2323
AttributesQueue, BatchProvider, BatchStream, ChannelProvider, ChannelReader, FrameQueue,
2424
L1Retrieval, L1Traversal,
2525
},
2626
traits::{
27-
ActivationSignal, BlobProvider, ChainProvider, L2ChainProvider, OriginProvider, Pipeline,
28-
ResetSignal, Signal, SignalReceiver, StepResult,
27+
BlobProvider, ChainProvider, L2ChainProvider, OriginProvider, Pipeline, SignalReceiver,
2928
},
29+
types::{ActivationSignal, PipelineResult, ResetSignal, Signal, StepResult},
3030
};
3131
use kona_executor::{KonaHandleRegister, StatelessL2BlockExecutor};
3232
use kona_mpt::{TrieHinter, TrieProvider};

Diff for: crates/derive/src/attributes/stateful.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
//! The [`AttributesBuilder`] and it's default implementation.
22
33
use crate::{
4-
errors::{
5-
BuilderError, PipelineEncodingError, PipelineError, PipelineErrorKind, PipelineResult,
6-
},
4+
errors::{BuilderError, PipelineEncodingError, PipelineError, PipelineErrorKind},
75
traits::{AttributesBuilder, ChainProvider, L2ChainProvider},
6+
types::PipelineResult,
87
};
98
use alloc::{boxed::Box, fmt::Debug, string::ToString, sync::Arc, vec, vec::Vec};
109
use alloy_consensus::{Eip658Value, Receipt};

Diff for: crates/derive/src/errors/mod.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ mod stages;
77
pub use stages::BatchDecompressionError;
88

99
mod pipeline;
10-
pub use pipeline::{
11-
PipelineEncodingError, PipelineError, PipelineErrorKind, PipelineResult, ResetError,
12-
};
10+
pub use pipeline::{PipelineEncodingError, PipelineError, PipelineErrorKind, ResetError};
1311

1412
mod sources;
1513
pub use sources::{BlobDecodingError, BlobProviderError};

Diff for: crates/derive/src/errors/pipeline.rs

-3
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ use alloy_primitives::B256;
66
use op_alloy_genesis::system::SystemConfigUpdateError;
77
use op_alloy_protocol::{DepositError, SpanBatchError};
88

9-
/// A result type for the derivation pipeline stages.
10-
pub type PipelineResult<T> = Result<T, PipelineErrorKind>;
11-
129
/// [crate::ensure] is a short-hand for bubbling up errors in the case of a condition not being met.
1310
#[macro_export]
1411
macro_rules! ensure {

Diff for: crates/derive/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ pub mod pipeline;
2020
pub mod sources;
2121
pub mod stages;
2222
pub mod traits;
23+
pub mod types;
2324

2425
#[cfg(any(test, feature = "test-utils"))]
2526
pub mod test_utils;

Diff for: crates/derive/src/pipeline/core.rs

+5-9
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
//! Contains the core derivation pipeline.
22
33
use crate::{
4-
errors::{PipelineError, PipelineErrorKind, PipelineResult},
4+
errors::{PipelineError, PipelineErrorKind},
55
traits::{
6-
ActivationSignal, L2ChainProvider, NextAttributes, OriginAdvancer, OriginProvider,
7-
Pipeline, ResetSignal, Signal, SignalReceiver, StepResult,
6+
L2ChainProvider, NextAttributes, OriginAdvancer, OriginProvider, Pipeline, SignalReceiver,
87
},
8+
types::{ActivationSignal, PipelineResult, ResetSignal, Signal, StepResult},
99
};
1010
use alloc::{boxed::Box, collections::VecDeque, sync::Arc};
1111
use async_trait::async_trait;
@@ -172,12 +172,8 @@ where
172172

173173
#[cfg(test)]
174174
mod tests {
175-
use crate::{
176-
errors::PipelineError,
177-
pipeline::DerivationPipeline,
178-
test_utils::*,
179-
traits::{ActivationSignal, Pipeline, ResetSignal, Signal, SignalReceiver, StepResult},
180-
};
175+
use super::*;
176+
use crate::{pipeline::DerivationPipeline, test_utils::*};
181177
use alloc::{string::ToString, sync::Arc};
182178
use alloy_rpc_types_engine::PayloadAttributes;
183179
use op_alloy_genesis::{RollupConfig, SystemConfig};

Diff for: crates/derive/src/sources/blobs.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
//! Blob Data Source
22
33
use crate::{
4-
errors::{BlobDecodingError, BlobProviderError, PipelineError, PipelineResult},
4+
errors::{BlobDecodingError, BlobProviderError, PipelineError},
55
traits::{AsyncIterator, BlobProvider, ChainProvider},
6+
types::PipelineResult,
67
};
78
use alloc::{boxed::Box, string::ToString, vec, vec::Vec};
89
use alloy_consensus::{Transaction, TxEip4844Variant, TxEnvelope, TxType};

Diff for: crates/derive/src/sources/calldata.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
//! CallData Source
22
33
use crate::{
4-
errors::{PipelineError, PipelineResult},
4+
errors::PipelineError,
55
traits::{AsyncIterator, ChainProvider},
6+
types::PipelineResult,
67
};
78
use alloc::{boxed::Box, collections::VecDeque};
89
use alloy_consensus::{Transaction, TxEnvelope};

Diff for: crates/derive/src/sources/ethereum.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
//! [DataAvailabilityProvider] trait for the Ethereum protocol.
33
44
use crate::{
5-
errors::PipelineResult,
65
sources::{BlobSource, CalldataSource, EthereumDataSourceVariant},
76
traits::{BlobProvider, ChainProvider, DataAvailabilityProvider},
7+
types::PipelineResult,
88
};
99
use alloc::{boxed::Box, fmt::Debug};
1010
use alloy_primitives::{Address, Bytes};

Diff for: crates/derive/src/sources/variant.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
//! Data source
22
33
use crate::{
4-
errors::PipelineResult,
54
sources::{BlobSource, CalldataSource},
65
traits::{AsyncIterator, BlobProvider, ChainProvider},
6+
types::PipelineResult,
77
};
88
use alloc::boxed::Box;
99
use alloy_primitives::Bytes;

Diff for: crates/derive/src/stages/attributes_queue.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
//! Contains the logic for the `AttributesQueue` stage.
22
33
use crate::{
4-
errors::{PipelineError, PipelineResult, ResetError},
4+
errors::{PipelineError, ResetError},
55
traits::{
66
AttributesBuilder, AttributesProvider, NextAttributes, OriginAdvancer, OriginProvider,
7-
Signal, SignalReceiver,
7+
SignalReceiver,
88
},
9+
types::{PipelineResult, Signal},
910
};
1011
use alloc::{boxed::Box, sync::Arc};
1112
use async_trait::async_trait;
@@ -198,7 +199,7 @@ mod tests {
198199
use crate::{
199200
errors::{BuilderError, PipelineErrorKind},
200201
test_utils::{new_test_attributes_provider, TestAttributesBuilder, TestAttributesProvider},
201-
traits::ResetSignal,
202+
types::ResetSignal,
202203
};
203204
use alloc::{sync::Arc, vec, vec::Vec};
204205
use alloy_primitives::{b256, Address, Bytes, B256};

Diff for: crates/derive/src/stages/batch/batch_provider.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22
33
use super::NextBatchProvider;
44
use crate::{
5-
errors::{PipelineError, PipelineResult},
5+
errors::PipelineError,
66
stages::{BatchQueue, BatchValidator},
7-
traits::{
8-
AttributesProvider, L2ChainProvider, OriginAdvancer, OriginProvider, Signal, SignalReceiver,
9-
},
7+
traits::{AttributesProvider, L2ChainProvider, OriginAdvancer, OriginProvider, SignalReceiver},
8+
types::{PipelineResult, Signal},
109
};
1110
use alloc::{boxed::Box, sync::Arc};
1211
use async_trait::async_trait;
@@ -179,7 +178,8 @@ mod test {
179178
use super::BatchProvider;
180179
use crate::{
181180
test_utils::{TestL2ChainProvider, TestNextBatchProvider},
182-
traits::{OriginProvider, ResetSignal, SignalReceiver},
181+
traits::{OriginProvider, SignalReceiver},
182+
types::ResetSignal,
183183
};
184184
use alloc::{sync::Arc, vec};
185185
use op_alloy_genesis::RollupConfig;

Diff for: crates/derive/src/stages/batch/batch_queue.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,9 @@
22
33
use super::NextBatchProvider;
44
use crate::{
5-
errors::{PipelineEncodingError, PipelineError, PipelineErrorKind, PipelineResult, ResetError},
6-
traits::{
7-
AttributesProvider, L2ChainProvider, OriginAdvancer, OriginProvider, ResetSignal, Signal,
8-
SignalReceiver,
9-
},
5+
errors::{PipelineEncodingError, PipelineError, PipelineErrorKind, ResetError},
6+
traits::{AttributesProvider, L2ChainProvider, OriginAdvancer, OriginProvider, SignalReceiver},
7+
types::{PipelineResult, ResetSignal, Signal},
108
};
119
use alloc::{boxed::Box, sync::Arc, vec::Vec};
1210
use async_trait::async_trait;

Diff for: crates/derive/src/stages/batch/batch_stream.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
//! This module contains the `BatchStream` stage.
22
33
use crate::{
4-
errors::{PipelineEncodingError, PipelineError, PipelineResult},
4+
errors::{PipelineEncodingError, PipelineError},
55
stages::NextBatchProvider,
6-
traits::{L2ChainProvider, OriginAdvancer, OriginProvider, Signal, SignalReceiver},
6+
traits::{L2ChainProvider, OriginAdvancer, OriginProvider, SignalReceiver},
7+
types::{PipelineResult, Signal},
78
};
89
use alloc::{boxed::Box, collections::VecDeque, sync::Arc};
910
use async_trait::async_trait;
@@ -222,7 +223,7 @@ mod test {
222223
use super::*;
223224
use crate::{
224225
test_utils::{CollectingLayer, TestBatchStreamProvider, TestL2ChainProvider, TraceStorage},
225-
traits::ResetSignal,
226+
types::ResetSignal,
226227
};
227228
use alloc::vec;
228229
use op_alloy_protocol::{SingleBatch, SpanBatchElement};

Diff for: crates/derive/src/stages/batch/batch_validator.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
33
use super::NextBatchProvider;
44
use crate::{
5-
errors::{PipelineResult, ResetError},
5+
errors::ResetError,
66
prelude::{OriginProvider, PipelineError, PipelineErrorKind},
7-
traits::{AttributesProvider, OriginAdvancer, ResetSignal, Signal, SignalReceiver},
7+
traits::{AttributesProvider, OriginAdvancer, SignalReceiver},
8+
types::{PipelineResult, ResetSignal, Signal},
89
};
910
use alloc::{boxed::Box, sync::Arc, vec::Vec};
1011
use async_trait::async_trait;
@@ -310,10 +311,11 @@ where
310311
#[cfg(test)]
311312
mod test {
312313
use crate::{
313-
errors::{PipelineError, PipelineErrorKind, PipelineResult, ResetError},
314+
errors::{PipelineError, PipelineErrorKind, ResetError},
314315
stages::{BatchValidator, NextBatchProvider},
315316
test_utils::{CollectingLayer, TestNextBatchProvider, TraceStorage},
316-
traits::{AttributesProvider, OriginAdvancer, ResetSignal, Signal, SignalReceiver},
317+
traits::{AttributesProvider, OriginAdvancer, SignalReceiver},
318+
types::{PipelineResult, ResetSignal, Signal},
317319
};
318320
use alloc::{sync::Arc, vec, vec::Vec};
319321
use alloy_eips::{BlockNumHash, NumHash};

Diff for: crates/derive/src/stages/batch/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
//! [ChannelReader]: crate::stages::channel::ChannelReader
1212
//! [AttributesQueue]: crate::stages::attributes_queue::AttributesQueue
1313
14-
use crate::errors::PipelineResult;
14+
use crate::types::PipelineResult;
1515
use alloc::boxed::Box;
1616
use async_trait::async_trait;
1717
use op_alloy_protocol::{Batch, BlockInfo, L2BlockInfo};

Diff for: crates/derive/src/stages/channel/channel_assembler.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
33
use super::{ChannelReaderProvider, NextFrameProvider};
44
use crate::{
5-
errors::PipelineResult,
65
prelude::{OriginProvider, PipelineError},
7-
traits::{OriginAdvancer, Signal, SignalReceiver},
6+
traits::{OriginAdvancer, SignalReceiver},
7+
types::{PipelineResult, Signal},
88
};
99
use alloc::{boxed::Box, sync::Arc};
1010
use alloy_primitives::{hex, Bytes};

Diff for: crates/derive/src/stages/channel/channel_bank.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,10 @@
22
33
use super::NextFrameProvider;
44
use crate::{
5-
errors::{PipelineError, PipelineErrorKind, PipelineResult},
5+
errors::{PipelineError, PipelineErrorKind},
66
stages::ChannelReaderProvider,
7-
traits::{OriginAdvancer, OriginProvider, Signal, SignalReceiver},
7+
traits::{OriginAdvancer, OriginProvider, SignalReceiver},
8+
types::{PipelineResult, Signal},
89
};
910
use alloc::{boxed::Box, collections::VecDeque, sync::Arc};
1011
use alloy_primitives::{hex, map::HashMap, Bytes};
@@ -245,7 +246,7 @@ mod tests {
245246
use super::*;
246247
use crate::{
247248
test_utils::{CollectingLayer, TestNextFrameProvider, TraceStorage},
248-
traits::ResetSignal,
249+
types::ResetSignal,
249250
};
250251
use alloc::{vec, vec::Vec};
251252
use op_alloy_genesis::{BASE_MAINNET_CONFIG, OP_MAINNET_CONFIG};

Diff for: crates/derive/src/stages/channel/channel_provider.rs

+5-3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,9 @@
22
33
use super::{ChannelAssembler, ChannelBank, ChannelReaderProvider, NextFrameProvider};
44
use crate::{
5-
errors::{PipelineError, PipelineResult},
6-
traits::{OriginAdvancer, OriginProvider, Signal, SignalReceiver},
5+
errors::PipelineError,
6+
traits::{OriginAdvancer, OriginProvider, SignalReceiver},
7+
types::{PipelineResult, Signal},
78
};
89
use alloc::{boxed::Box, sync::Arc};
910
use alloy_primitives::Bytes;
@@ -158,7 +159,8 @@ mod test {
158159
prelude::{OriginProvider, PipelineError},
159160
stages::ChannelReaderProvider,
160161
test_utils::TestNextFrameProvider,
161-
traits::{ResetSignal, SignalReceiver},
162+
traits::SignalReceiver,
163+
types::ResetSignal,
162164
};
163165
use alloc::{sync::Arc, vec};
164166
use op_alloy_genesis::RollupConfig;

Diff for: crates/derive/src/stages/channel/channel_reader.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
//! This module contains the `ChannelReader` struct.
22
33
use crate::{
4-
errors::{PipelineError, PipelineResult},
4+
errors::PipelineError,
55
stages::{decompress_brotli, BatchStreamProvider},
6-
traits::{OriginAdvancer, OriginProvider, Signal, SignalReceiver},
6+
traits::{OriginAdvancer, OriginProvider, SignalReceiver},
7+
types::{PipelineResult, Signal},
78
};
89
use alloc::{boxed::Box, sync::Arc, vec::Vec};
910
use alloy_primitives::Bytes;
@@ -257,7 +258,7 @@ impl BatchReader {
257258
mod test {
258259
use super::*;
259260
use crate::{
260-
errors::PipelineErrorKind, test_utils::TestChannelReaderProvider, traits::ResetSignal,
261+
errors::PipelineErrorKind, test_utils::TestChannelReaderProvider, types::ResetSignal,
261262
};
262263
use alloc::vec;
263264

Diff for: crates/derive/src/stages/channel/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
//! [FrameQueue]: crate::stages::FrameQueue
1212
//! [BatchQueue]: crate::stages::BatchQueue
1313
14-
use crate::errors::PipelineResult;
14+
use crate::types::PipelineResult;
1515
use alloc::boxed::Box;
1616
use async_trait::async_trait;
1717
use op_alloy_protocol::Frame;

Diff for: crates/derive/src/stages/frame_queue.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
//! This module contains the [FrameQueue] stage of the derivation pipeline.
22
33
use crate::{
4-
errors::{PipelineError, PipelineResult},
4+
errors::PipelineError,
55
stages::NextFrameProvider,
6-
traits::{OriginAdvancer, OriginProvider, Signal, SignalReceiver},
6+
traits::{OriginAdvancer, OriginProvider, SignalReceiver},
7+
types::{PipelineResult, Signal},
78
};
89
use alloc::{boxed::Box, collections::VecDeque, sync::Arc};
910
use alloy_primitives::Bytes;
@@ -193,7 +194,7 @@ where
193194
#[cfg(test)]
194195
pub(crate) mod tests {
195196
use super::*;
196-
use crate::{test_utils::TestFrameQueueProvider, traits::ResetSignal};
197+
use crate::{test_utils::TestFrameQueueProvider, types::ResetSignal};
197198
use alloc::vec;
198199

199200
#[tokio::test]

Diff for: crates/derive/src/stages/l1_retrieval.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
//! Contains the [L1Retrieval] stage of the derivation pipeline.
22
33
use crate::{
4-
errors::{PipelineError, PipelineErrorKind, PipelineResult},
4+
errors::{PipelineError, PipelineErrorKind},
55
stages::FrameQueueProvider,
66
traits::{
7-
ActivationSignal, AsyncIterator, DataAvailabilityProvider, OriginAdvancer, OriginProvider,
8-
ResetSignal, Signal, SignalReceiver,
7+
AsyncIterator, DataAvailabilityProvider, OriginAdvancer, OriginProvider, SignalReceiver,
98
},
9+
types::{ActivationSignal, PipelineResult, ResetSignal, Signal},
1010
};
1111
use alloc::boxed::Box;
1212
use alloy_primitives::Address;

Diff for: crates/derive/src/stages/l1_traversal.rs

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
//! Contains the [L1Traversal] stage of the derivation pipeline.
22
33
use crate::{
4-
errors::{PipelineError, PipelineResult, ResetError},
4+
errors::{PipelineError, ResetError},
55
stages::L1RetrievalProvider,
6-
traits::{
7-
ActivationSignal, ChainProvider, OriginAdvancer, OriginProvider, ResetSignal, Signal,
8-
SignalReceiver,
9-
},
6+
traits::{ChainProvider, OriginAdvancer, OriginProvider, SignalReceiver},
7+
types::{ActivationSignal, PipelineResult, ResetSignal, Signal},
108
};
119
use alloc::{boxed::Box, sync::Arc};
1210
use alloy_primitives::Address;

0 commit comments

Comments
 (0)