1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
//! Basic iterator/list-backed item components (#146).
//!
//! These are minimal, ephemeral, in-memory components: they hold no durable
//! state of their own and therefore declare no restart capability beyond what
//! a paired [`crate::ItemStream`] would add (none is provided here). They
//! exist to make the rest of the composition catalog practically usable and
//! testable without every example standing up a resource-backed adapter.
use crate::;
/// A basic [`crate::ItemReader`] over any `Send` iterator.
///
/// # Contract
///
/// - **Input/output**: produces `It::Item`; no format/version (in-memory).
/// - **State/checkpoint**: none; not restartable. A restart reconstructs this
/// reader from its initial iterator and therefore re-reads from the start,
/// exactly like any other component with no paired [`crate::ItemStream`].
/// - **Ordering**: preserves the iterator's own order.
/// - **Thread safety**: `Send`; used exclusively (`&mut self`) like every
/// `ItemReader`, so no additional synchronization is meaningful.
/// - **Reentrancy**: not reentrant (owns mutable iteration state).
/// - **Transaction/delivery**: not applicable (a reader never enlists).
/// - **Bounded resource**: bounded by the wrapped iterator; this type adds no
/// buffering.
/// - **Cancellation**: cooperative stop is observed by the driving
/// [`crate::ChunkStep`] between calls, matching every other reader; this
/// type does not check the stop token itself because it never blocks.
/// - **Close**: nothing to close.
/// - **Sensitive diagnostics**: none; carries no sensitive-data declaration
/// of its own.
/// - **Malformed input**: not applicable; the iterator cannot fail.
/// - **Support tier**: first-party, reference-only (not for production
/// durable pipelines without a paired stream).
/// - **Evidence**: `crates/oxide-batch-test/tests/item_components_basic.rs`.
;
/// A basic pass-through [`crate::ItemProcessor`] that returns its input
/// unchanged.
///
/// # Contract
///
/// - **Input/output**: `I -> I`, unchanged.
/// - **State/checkpoint**: stateless.
/// - **Ordering**: preserves order; never filters or stops.
/// - **Thread safety**: `Send + Sync`; safe under concurrent shared calls
/// (no interior state).
/// - **Reentrancy**: fully reentrant.
/// - **Transaction/delivery**: not applicable.
/// - **Bounded resource**: none; clones one item per call.
/// - **Cancellation**: honors the call-scoped stop token.
/// - **Close**: nothing to close.
/// - **Sensitive diagnostics**: none.
/// - **Malformed input**: not applicable; cannot fail.
/// - **Support tier**: first-party.
/// - **Evidence**: `crates/oxide-batch-test/tests/item_components_basic.rs`.
;
/// A basic [`crate::ItemWriter`] that accepts and discards every item.
///
/// Useful as a delegate placeholder in composite/classifier pipelines, or for
/// steps whose business effect is entirely inside the processor/reader.
///
/// # Contract
///
/// - **Input/output**: accepts any `O`; produces nothing.
/// - **State/checkpoint**: stateless.
/// - **Ordering**: not order-sensitive (discards).
/// - **Thread safety**: `Send + Sync`.
/// - **Reentrancy**: fully reentrant.
/// - **Transaction/delivery**: never enlists; ignores any supplied
/// transaction. Safe to compose under [`WriteContext::enlisted`] because it
/// performs no business effect to roll back.
/// - **Bounded resource**: none.
/// - **Cancellation**: honors the call-scoped stop token.
/// - **Close**: nothing to close.
/// - **Sensitive diagnostics**: none; never inspects item contents.
/// - **Malformed input**: not applicable; cannot fail.
/// - **Support tier**: first-party.
/// - **Evidence**: `crates/oxide-batch-test/tests/item_components_basic.rs`.
;