Skip to content

Commit eff628b

Browse files
committed
deploy: 055173b
1 parent 3a754cc commit eff628b

File tree

12 files changed

+281
-194
lines changed

12 files changed

+281
-194
lines changed

dev/src/uu_dd/blocks.rs.html

Lines changed: 43 additions & 121 deletions
Large diffs are not rendered by default.

dev/src/uu_dd/datastructures.rs.html

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,13 @@
129129
<span id="127">127</span>
130130
<span id="128">128</span>
131131
<span id="129">129</span>
132+
<span id="130">130</span>
133+
<span id="131">131</span>
134+
<span id="132">132</span>
135+
<span id="133">133</span>
136+
<span id="134">134</span>
137+
<span id="135">135</span>
138+
<span id="136">136</span>
132139
</pre><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.</span>
133140
<span class="comment">//</span>
134141
<span class="comment">// (c) Tyler Steele &lt;tyler.steele@protonmail.com&gt;</span>
@@ -145,12 +152,27 @@
145152

146153
<span class="kw">type</span> <span class="ident">Cbs</span> <span class="op">=</span> <span class="ident">usize</span>;
147154

155+
<span class="doccomment">/// How to apply conversion, blocking, and/or unblocking.</span>
156+
<span class="doccomment">///</span>
157+
<span class="doccomment">/// Certain settings of the `conv` parameter to `dd` require a</span>
158+
<span class="doccomment">/// combination of conversion, blocking, or unblocking, applied in a</span>
159+
<span class="doccomment">/// certain order. The variants of this enumeration give the different</span>
160+
<span class="doccomment">/// ways of combining those three operations.</span>
161+
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>, <span class="ident">PartialEq</span>)]</span>
162+
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">enum</span> <span class="ident">ConversionMode</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> {
163+
<span class="ident">ConvertOnly</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">ConversionTable</span>),
164+
<span class="ident">BlockOnly</span>(<span class="ident">Cbs</span>, <span class="ident">bool</span>),
165+
<span class="ident">UnblockOnly</span>(<span class="ident">Cbs</span>),
166+
<span class="ident">BlockThenConvert</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">ConversionTable</span>, <span class="ident">Cbs</span>, <span class="ident">bool</span>),
167+
<span class="ident">ConvertThenBlock</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">ConversionTable</span>, <span class="ident">Cbs</span>, <span class="ident">bool</span>),
168+
<span class="ident">UnblockThenConvert</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">ConversionTable</span>, <span class="ident">Cbs</span>),
169+
<span class="ident">ConvertThenUnblock</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">ConversionTable</span>, <span class="ident">Cbs</span>),
170+
}
171+
148172
<span class="doccomment">/// Stores all Conv Flags that apply to the input</span>
149173
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>, <span class="ident">Default</span>, <span class="ident">PartialEq</span>)]</span>
150-
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">IConvFlags</span> {
151-
<span class="kw">pub</span> <span class="ident">ctable</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">ConversionTable</span><span class="op">&gt;</span>,
152-
<span class="kw">pub</span> <span class="ident">block</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Cbs</span><span class="op">&gt;</span>,
153-
<span class="kw">pub</span> <span class="ident">unblock</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Cbs</span><span class="op">&gt;</span>,
174+
<span class="kw">pub</span>(<span class="kw">crate</span>) <span class="kw">struct</span> <span class="ident">IConvFlags</span> {
175+
<span class="kw">pub</span> <span class="ident">mode</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">ConversionMode</span><span class="op">&lt;</span><span class="lifetime">&#39;static</span><span class="op">&gt;</span><span class="op">&gt;</span>,
154176
<span class="kw">pub</span> <span class="ident">swab</span>: <span class="ident">bool</span>,
155177
<span class="kw">pub</span> <span class="ident">sync</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span>,
156178
<span class="kw">pub</span> <span class="ident">noerror</span>: <span class="ident">bool</span>,
@@ -222,19 +244,11 @@
222244
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">InternalError</span> {
223245
<span class="ident">WrongInputType</span>,
224246
<span class="ident">WrongOutputType</span>,
225-
<span class="ident">InvalidConvBlockUnblockCase</span>,
226247
}
227248

228249
<span class="kw">impl</span> <span class="ident">std::fmt::Display</span> <span class="kw">for</span> <span class="ident">InternalError</span> {
229250
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;mut</span> <span class="ident">std::fmt::Formatter</span><span class="op">&lt;</span><span class="lifetime">&#39;_</span><span class="op">&gt;</span>) -&gt; <span class="ident">std::fmt::Result</span> {
230-
<span class="kw">match</span> <span class="self">self</span> {
231-
<span class="ident"><span class="self">Self</span>::WrongInputType</span> <span class="op">|</span> <span class="ident"><span class="self">Self</span>::WrongOutputType</span> =&gt; {
232-
<span class="macro">write!</span>(<span class="ident">f</span>, <span class="string">&quot;Internal dd error: Wrong Input/Output data type&quot;</span>)
233-
}
234-
<span class="ident"><span class="self">Self</span>::InvalidConvBlockUnblockCase</span> =&gt; {
235-
<span class="macro">write!</span>(<span class="ident">f</span>, <span class="string">&quot;Invalid Conversion, Block, or Unblock data&quot;</span>)
236-
}
237-
}
251+
<span class="macro">write!</span>(<span class="ident">f</span>, <span class="string">&quot;Internal dd error: Wrong Input/Output data type&quot;</span>)
238252
}
239253
}
240254

dev/src/uu_dd/dd.rs.html

Lines changed: 7 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,21 +1165,6 @@
11651165
<span id="1163">1163</span>
11661166
<span id="1164">1164</span>
11671167
<span id="1165">1165</span>
1168-
<span id="1166">1166</span>
1169-
<span id="1167">1167</span>
1170-
<span id="1168">1168</span>
1171-
<span id="1169">1169</span>
1172-
<span id="1170">1170</span>
1173-
<span id="1171">1171</span>
1174-
<span id="1172">1172</span>
1175-
<span id="1173">1173</span>
1176-
<span id="1174">1174</span>
1177-
<span id="1175">1175</span>
1178-
<span id="1176">1176</span>
1179-
<span id="1177">1177</span>
1180-
<span id="1178">1178</span>
1181-
<span id="1179">1179</span>
1182-
<span id="1180">1180</span>
11831168
</pre><pre class="rust"><code><span class="comment">// This file is part of the uutils coreutils package.</span>
11841169
<span class="comment">//</span>
11851170
<span class="comment">// (c) Tyler Steele &lt;tyler.steele@protonmail.com&gt;</span>
@@ -1227,7 +1212,6 @@
12271212

12281213
<span class="kw">struct</span> <span class="ident">Input</span><span class="op">&lt;</span><span class="ident">R</span>: <span class="ident">Read</span><span class="op">&gt;</span> {
12291214
<span class="ident">src</span>: <span class="ident">R</span>,
1230-
<span class="ident">non_ascii</span>: <span class="ident">bool</span>,
12311215
<span class="ident">ibs</span>: <span class="ident">usize</span>,
12321216
<span class="ident">print_level</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">StatusLevel</span><span class="op">&gt;</span>,
12331217
<span class="ident">count</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">CountType</span><span class="op">&gt;</span>,
@@ -1238,7 +1222,6 @@
12381222
<span class="kw">impl</span> <span class="ident">Input</span><span class="op">&lt;</span><span class="ident">io::Stdin</span><span class="op">&gt;</span> {
12391223
<span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">matches</span>: <span class="kw-2">&amp;</span><span class="ident">Matches</span>) -&gt; <span class="ident">UResult</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
12401224
<span class="kw">let</span> <span class="ident">ibs</span> <span class="op">=</span> <span class="ident">parseargs::parse_ibs</span>(<span class="ident">matches</span>)<span class="question-mark">?</span>;
1241-
<span class="kw">let</span> <span class="ident">non_ascii</span> <span class="op">=</span> <span class="ident">parseargs::parse_input_non_ascii</span>(<span class="ident">matches</span>)<span class="question-mark">?</span>;
12421225
<span class="kw">let</span> <span class="ident">print_level</span> <span class="op">=</span> <span class="ident">parseargs::parse_status_level</span>(<span class="ident">matches</span>)<span class="question-mark">?</span>;
12431226
<span class="kw">let</span> <span class="ident">cflags</span> <span class="op">=</span> <span class="ident">parseargs::parse_conv_flag_input</span>(<span class="ident">matches</span>)<span class="question-mark">?</span>;
12441227
<span class="kw">let</span> <span class="ident">iflags</span> <span class="op">=</span> <span class="ident">parseargs::parse_iflags</span>(<span class="ident">matches</span>)<span class="question-mark">?</span>;
@@ -1249,7 +1232,6 @@
12491232

12501233
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">i</span> <span class="op">=</span> <span class="self">Self</span> {
12511234
<span class="ident">src</span>: <span class="ident">io::stdin</span>(),
1252-
<span class="ident">non_ascii</span>,
12531235
<span class="ident">ibs</span>,
12541236
<span class="ident">print_level</span>,
12551237
<span class="ident">count</span>,
@@ -1313,7 +1295,6 @@
13131295
<span class="kw">impl</span> <span class="ident">Input</span><span class="op">&lt;</span><span class="ident">File</span><span class="op">&gt;</span> {
13141296
<span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">matches</span>: <span class="kw-2">&amp;</span><span class="ident">Matches</span>) -&gt; <span class="ident">UResult</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
13151297
<span class="kw">let</span> <span class="ident">ibs</span> <span class="op">=</span> <span class="ident">parseargs::parse_ibs</span>(<span class="ident">matches</span>)<span class="question-mark">?</span>;
1316-
<span class="kw">let</span> <span class="ident">non_ascii</span> <span class="op">=</span> <span class="ident">parseargs::parse_input_non_ascii</span>(<span class="ident">matches</span>)<span class="question-mark">?</span>;
13171298
<span class="kw">let</span> <span class="ident">print_level</span> <span class="op">=</span> <span class="ident">parseargs::parse_status_level</span>(<span class="ident">matches</span>)<span class="question-mark">?</span>;
13181299
<span class="kw">let</span> <span class="ident">cflags</span> <span class="op">=</span> <span class="ident">parseargs::parse_conv_flag_input</span>(<span class="ident">matches</span>)<span class="question-mark">?</span>;
13191300
<span class="kw">let</span> <span class="ident">iflags</span> <span class="op">=</span> <span class="ident">parseargs::parse_iflags</span>(<span class="ident">matches</span>)<span class="question-mark">?</span>;
@@ -1345,7 +1326,6 @@
13451326

13461327
<span class="kw">let</span> <span class="ident">i</span> <span class="op">=</span> <span class="self">Self</span> {
13471328
<span class="ident">src</span>,
1348-
<span class="ident">non_ascii</span>,
13491329
<span class="ident">ibs</span>,
13501330
<span class="ident">print_level</span>,
13511331
<span class="ident">count</span>,
@@ -1789,16 +1769,6 @@
17891769

17901770
<span class="doccomment">/// Read helper performs read operations common to all dd reads, and dispatches the buffer to relevant helper functions as dictated by the operations requested by the user.</span>
17911771
<span class="kw">fn</span> <span class="ident">read_helper</span><span class="op">&lt;</span><span class="ident">R</span>: <span class="ident">Read</span><span class="op">&gt;</span>(<span class="ident">i</span>: <span class="kw-2">&amp;mut</span> <span class="ident">Input</span><span class="op">&lt;</span><span class="ident">R</span><span class="op">&gt;</span>, <span class="ident">bsize</span>: <span class="ident">usize</span>) -&gt; <span class="ident">std::io::Result</span><span class="op">&lt;</span>(<span class="ident">ReadStat</span>, <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span>)<span class="op">&gt;</span> {
1792-
<span class="comment">// Local Predicate Fns -----------------------------------------------</span>
1793-
<span class="kw">fn</span> <span class="ident">is_conv</span><span class="op">&lt;</span><span class="ident">R</span>: <span class="ident">Read</span><span class="op">&gt;</span>(<span class="ident">i</span>: <span class="kw-2">&amp;</span><span class="ident">Input</span><span class="op">&lt;</span><span class="ident">R</span><span class="op">&gt;</span>) -&gt; <span class="ident">bool</span> {
1794-
<span class="ident">i</span>.<span class="ident">cflags</span>.<span class="ident">ctable</span>.<span class="ident">is_some</span>()
1795-
}
1796-
<span class="kw">fn</span> <span class="ident">is_block</span><span class="op">&lt;</span><span class="ident">R</span>: <span class="ident">Read</span><span class="op">&gt;</span>(<span class="ident">i</span>: <span class="kw-2">&amp;</span><span class="ident">Input</span><span class="op">&lt;</span><span class="ident">R</span><span class="op">&gt;</span>) -&gt; <span class="ident">bool</span> {
1797-
<span class="ident">i</span>.<span class="ident">cflags</span>.<span class="ident">block</span>.<span class="ident">is_some</span>()
1798-
}
1799-
<span class="kw">fn</span> <span class="ident">is_unblock</span><span class="op">&lt;</span><span class="ident">R</span>: <span class="ident">Read</span><span class="op">&gt;</span>(<span class="ident">i</span>: <span class="kw-2">&amp;</span><span class="ident">Input</span><span class="op">&lt;</span><span class="ident">R</span><span class="op">&gt;</span>) -&gt; <span class="ident">bool</span> {
1800-
<span class="ident">i</span>.<span class="ident">cflags</span>.<span class="ident">unblock</span>.<span class="ident">is_some</span>()
1801-
}
18021772
<span class="comment">// Local Helper Fns -------------------------------------------------</span>
18031773
<span class="kw">fn</span> <span class="ident">perform_swab</span>(<span class="ident">buf</span>: <span class="kw-2">&amp;mut</span> [<span class="ident">u8</span>]) {
18041774
<span class="kw">for</span> <span class="ident">base</span> <span class="kw">in</span> (<span class="number">1</span>..<span class="ident">buf</span>.<span class="ident">len</span>()).<span class="ident">step_by</span>(<span class="number">2</span>) {
@@ -1821,11 +1791,13 @@
18211791
<span class="kw">if</span> <span class="ident">i</span>.<span class="ident">cflags</span>.<span class="ident">swab</span> {
18221792
<span class="ident">perform_swab</span>(<span class="kw-2">&amp;mut</span> <span class="ident">buf</span>);
18231793
}
1824-
<span class="kw">if</span> <span class="ident">is_conv</span>(<span class="ident">i</span>) <span class="op">|</span><span class="op">|</span> <span class="ident">is_block</span>(<span class="ident">i</span>) <span class="op">|</span><span class="op">|</span> <span class="ident">is_unblock</span>(<span class="ident">i</span>) {
1825-
<span class="kw">let</span> <span class="ident">buf</span> <span class="op">=</span> <span class="ident">conv_block_unblock_helper</span>(<span class="ident">buf</span>, <span class="ident">i</span>, <span class="kw-2">&amp;mut</span> <span class="ident">rstat</span>).<span class="ident">unwrap</span>();
1826-
<span class="prelude-val">Ok</span>((<span class="ident">rstat</span>, <span class="ident">buf</span>))
1827-
} <span class="kw">else</span> {
1828-
<span class="prelude-val">Ok</span>((<span class="ident">rstat</span>, <span class="ident">buf</span>))
1794+
1795+
<span class="kw">match</span> <span class="ident">i</span>.<span class="ident">cflags</span>.<span class="ident">mode</span> {
1796+
<span class="prelude-val">Some</span>(<span class="kw-2">ref</span> <span class="ident">mode</span>) =&gt; {
1797+
<span class="kw">let</span> <span class="ident">buf</span> <span class="op">=</span> <span class="ident">conv_block_unblock_helper</span>(<span class="ident">buf</span>, <span class="ident">mode</span>, <span class="kw-2">&amp;mut</span> <span class="ident">rstat</span>);
1798+
<span class="prelude-val">Ok</span>((<span class="ident">rstat</span>, <span class="ident">buf</span>))
1799+
}
1800+
<span class="prelude-val">None</span> =&gt; <span class="prelude-val">Ok</span>((<span class="ident">rstat</span>, <span class="ident">buf</span>)),
18291801
}
18301802
}
18311803

@@ -2271,7 +2243,6 @@
22712243
<span class="ident">src</span>: <span class="ident">LazyReader</span> {
22722244
<span class="ident">src</span>: <span class="ident">File::open</span>(<span class="string">&quot;./test-resources/deadbeef-16.test&quot;</span>).<span class="ident">unwrap</span>(),
22732245
},
2274-
<span class="ident">non_ascii</span>: <span class="bool-val">false</span>,
22752246
<span class="ident">ibs</span>: <span class="number">16</span>,
22762247
<span class="ident">print_level</span>: <span class="prelude-val">None</span>,
22772248
<span class="ident">count</span>: <span class="prelude-val">None</span>,
@@ -2318,7 +2289,6 @@
23182289
<span class="ident">src</span>: <span class="ident">File::open</span>(<span class="string">&quot;./test-resources/random-5828891cb1230748e146f34223bbd3b5.test&quot;</span>)
23192290
.<span class="ident">unwrap</span>(),
23202291
},
2321-
<span class="ident">non_ascii</span>: <span class="bool-val">false</span>,
23222292
<span class="ident">ibs</span>: <span class="number">521</span>,
23232293
<span class="ident">print_level</span>: <span class="prelude-val">None</span>,
23242294
<span class="ident">count</span>: <span class="prelude-val">None</span>,

0 commit comments

Comments
 (0)