220 lines
21 KiB
Plaintext
220 lines
21 KiB
Plaintext
<p>Hello and welcome to another issue of <em>This Week in Rust</em>!
|
||
<a href="http://rust-lang.org">Rust</a> is a programming language empowering everyone to build reliable and efficient software.
|
||
This is a weekly summary of its progress and community.
|
||
Want something mentioned? Tweet us at <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> or <a href="https://github.com/rust-lang/this-week-in-rust">send us a pull request</a>.
|
||
Want to get involved? <a href="https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md">We love contributions</a>.</p>
|
||
<p><em>This Week in Rust</em> is openly developed <a href="https://github.com/rust-lang/this-week-in-rust">on GitHub</a>.
|
||
If you find any errors in this week's issue, <a href="https://github.com/rust-lang/this-week-in-rust/pulls">please submit a PR</a>.</p>
|
||
<h2 id="updates-from-rust-community">Updates from Rust Community</h2>
|
||
<h3 id="official">Official</h3>
|
||
<ul>
|
||
<li><a href="https://blog.rust-lang.org/2021/10/21/Rust-1.56.0.html">Announcing Rust 1.56.0 and Rust 2021</a></li>
|
||
</ul>
|
||
<h3 id="foundation">Foundation</h3>
|
||
<ul>
|
||
<li><a href="https://foundation.rust-lang.org/posts/2021-10-26-member-spotlight-tag1/">Member Spotlight: Tag1</a></li>
|
||
</ul>
|
||
<h3 id="projecttooling-updates">Project/Tooling Updates</h3>
|
||
<ul>
|
||
<li><a href="https://kerkour.com/blog/black-hat-rust-october-update/">Black Hat Rust October Update (now in Beta 🍾)</a></li>
|
||
<li><a href="https://sixtyfps.io/thisweek/2021-10-25.html">SixtyFPS (GUI crate) weekly report for 24th of October 2021</a></li>
|
||
<li><a href="https://gloo-rs.web.app/blog/release-0.4.0/">Releasing Gloo v0.4.0: Gloo is a modular toolkit for building fast, reliable Web applications and libraries with Rust and Wasm </a></li>
|
||
<li><a href="https://www.fluvio.io/news/this-week-in-fluvio-0010/">This week in Fluvio #10: the programmable streaming platform</a></li>
|
||
<li><a href="https://datafuselabs.github.io/weekly/2021-10-27-databend-weekly/">This week in Databend #13: an elastic and reliable cloud warehouse</a></li>
|
||
<li><a href="https://rust-analyzer.github.io/thisweek/2021/10/25/changelog-100.html">Rust Analyzer Changelog #100</a></li>
|
||
<li><a href="https://intellij-rust.github.io/2021/10/25/changelog-158.html">IntelliJ Rust Changelog #158</a></li>
|
||
</ul>
|
||
<h3 id="observationsthoughts">Observations/Thoughts</h3>
|
||
<ul>
|
||
<li><a href="https://tweedegolf.nl/blog/63/async-on-embedded-present-and-future">Async on Embedded: Present & Future</a></li>
|
||
<li><a href="https://passcod.name/technical/no-time-for-chrono.html">No Time for Chrono</a></li>
|
||
<li><a href="https://senyosimpson.com/short-forms/pointer-fu-tokio/">Pointer Fu: An adventure in the Tokio code base</a></li>
|
||
<li><a href="https://dev.to/joshchoo/how-actix-webs-application-state-and-data-extractor-works-internally-fm1">How actix-web's application state and Data extractor works internally</a></li>
|
||
<li><a href="https://coredumped.dev/2021/10/21/building-an-emacs-lisp-vm-in-rust/">Building an Emacs lisp VM in Rust</a></li>
|
||
<li><a href="https://whileydave.com/2021/10/26/test-driving-the-rust-model-checker-rmc/">Test-Driving the Rust Model Checker (RMC)</a></li>
|
||
<li><a href="https://www.thecodedmessage.com/posts/hello-rust/">Sayonara, C++, and hello to Rust!</a></li>
|
||
<li><a href="https://seiya.me/writing-linux-clone-in-rust">Writing a Linux-compatible kernel in Rust</a></li>
|
||
<li><a href="https://estebank.github.io/sustainable-growth-and-visibility.html">Sustainable growth and visibility</a></li>
|
||
<li>[audio] <a href="https://rustacean-station.org/episode/039-rust-1.54-1.55/">What's New in Rust 1.54 and 1.55</a></li>
|
||
<li>[audio] <a href="https://rustacean-station.org/episode/043-bastian-gruber/">Rust Web Development with Bastian Gruber</a></li>
|
||
</ul>
|
||
<h3 id="rust-walkthroughs">Rust Walkthroughs</h3>
|
||
<ul>
|
||
<li><a href="https://www.osohq.com/post/cross-platform-rust-libraries">🦀 How We Built a Cross-Platform Library with Rust</a></li>
|
||
<li><a href="https://burgers.io/custom-logging-in-rust-using-tracing-part-2">Custom Logging in Rust using tracing and tracing-subscriber, part 2</a></li>
|
||
<li><a href="https://www.greyblake.com/blog/2021-10-25-builder-with-typestate-in-rust/">Builder with typestate in Rust</a></li>
|
||
<li><a href="https://dev.to/dimfeld/starting-with-solana-part-2-17gc">Starting with Solana, Part 2</a></li>
|
||
<li><a href="https://dev.to/tjmaynes/implementing-the-health-check-api-pattern-with-rust-29ll">Implementing the Health Check API Pattern with Rust</a></li>
|
||
<li><a href="https://dev.to/logrocket/icedrs-tutorial-how-to-build-a-simple-rust-frontend-web-app-2pg7">Iced.rs tutorial: How to build a simple Rust frontend web app</a></li>
|
||
<li><a href="https://dev.to/ayush1325/writing-a-qml-application-in-rust-part-1-3pgi">Writing a QML Application in Rust (Part 1)</a></li>
|
||
<li><a href="https://opensource.com/article/21/10/rust-embedded-development">Use Rust for embedded development</a></li>
|
||
<li><a href="https://yieldcode.blog/supercharge-nodejs-with-rust/">Supercharge Your NodeJS With Rust</a></li>
|
||
<li><a href="https://itnext.io/implementing-the-health-check-api-pattern-with-rust-eaef04cb4d2d">Implementing the Health Check API Pattern with Rust</a></li>
|
||
<li><a href="https://fasterthanli.me/articles/my-ideal-rust-workflow">My ideal Rust workflow</a></li>
|
||
<li><a href="https://reltech.substack.com/p/getting-started-with-rust-on-a-raspberry">Getting Started with Rust on a Raspberry Pi Pico</a></li>
|
||
<li>[series] <a href="https://medium.com/@otukof/build-your-text-editor-with-rust-final-part-4c841a649900">Build Your Text Editor With Rust! Final Part</a></li>
|
||
<li>[video] <a href="https://www.youtube.com/watch?v=rBGPAmfsVjo">Writing a Programming Language (in Rust) 2: Branching, Literals and Addition</a></li>
|
||
<li>[video] <a href="https://blog.tarkalabs.com/how-to-build-a-web-application-using-rust-part-iii-ed6511ebaa97">How to Build a Web Application using Rust — Part III</a></li>
|
||
<li>[video] <a href="https://www.youtube.com/watch?v=rAVHBl3W9W8">FLTK Rust: intro into the fltk-evented crate</a></li>
|
||
<li>[video] <a href="https://www.youtube.com/watch?v=5rwnWfMJflU">Rust Programming - Macros Quick Dev Tips</a></li>
|
||
<li>[video] <a href="https://www.youtube.com/watch?v=ePMbrtzZz9E">Rewriting a C++ project in Rust to learn the language</a></li>
|
||
<li>[video] <a href="https://www.youtube.com/watch?v=Yd6PvqNct-o">rg3d - live coding session #1</a></li>
|
||
<li>[video] <a href="https://www.youtube.com/watch?v=Nuba5LNy5cY">Understand Rust's Borrow Checker in 5 Minutes</a></li>
|
||
</ul>
|
||
<h3 id="miscellaneous">Miscellaneous</h3>
|
||
<ul>
|
||
<li><a href="https://mojosd.medium.com/rust-code-reading-club-8fe356287049">Rustc Code Reading Club</a></li>
|
||
<li><a href="https://www.twitch.tv/ezanmoto">Writing a Programming Language (in Rust): Weekly Stream, Saturdays at 15:00~17:00 GMT+1</a></li>
|
||
<li><a href="https://quickwit.io/blog/search-a-sorted-block/">A cool Rust optimization story</a></li>
|
||
<li><a href="https://finance.yahoo.com/news/concordium-devx-initiative-launches-rust-131500585.html">Concordium’s DevX Initiative Launches Rust Maintainers Sponsorship Program</a></li>
|
||
<li><a href="https://linkerd.io/2021/10/26/how-linkerd-retries-http-requests-with-bodies/">How Linkerd retries HTTP requests with bodies</a></li>
|
||
<li><a href="https://medium.com/coinmonks/build-a-scalable-trading-bot-with-rust-over-the-weekend-part-2-bb7d703eebe7">Build a Scalable Trading Bot With Rust Over the Weekend — Part 2</a></li>
|
||
</ul>
|
||
<h2 id="crate-of-the-week">Crate of the Week</h2>
|
||
<p>This week's crate is <a href="https://web.crev.dev/rust-reviews/">cargo-crev</a>, a tool to distribute security review of the crates we all depend on.</p>
|
||
<p>As there was no suggestion this week, llogiq is pretty thankful to himself for choosing this crate.</p>
|
||
<p><a href="https://users.rust-lang.org/t/crate-of-the-week/2704">Please submit your suggestions and votes for next week</a>!</p>
|
||
<h2 id="call-for-participation">Call for Participation</h2>
|
||
<p>Always wanted to contribute to open-source projects but didn't know where to start?
|
||
Every week we highlight some tasks from the Rust community for you to pick and get started!</p>
|
||
<p>Some of these tasks may also have mentors available, visit the task page for more information.</p>
|
||
<p>If you are a Rust project owner and are looking for contributors, please submit tasks <a href="https://users.rust-lang.org/t/twir-call-for-participation/4821">here</a>.</p>
|
||
<ul>
|
||
<li><a href="https://github.com/wahn/rs_pbrt/issues/136">wahn/rs_pbrt - [parse_blend_file] Attic Close-up</a></li>
|
||
<li><a href="https://github.com/kdr-aus/ogma/issues/16">kdr-aus/ogma - Implement filter on Str input type</a></li>
|
||
<li><a href="https://github.com/kdr-aus/divvy/issues/2">kdr-aus/ogma - Implement <code>From<char for Str</code></a></li>
|
||
<li><a href="https://github.com/ockam-network/ockam/issues/2121">ockam-network/ockam - Compile to WebAssembly</a></li>
|
||
<li><a href="https://github.com/ockam-network/ockam/issues/1804">ockam-network/ockam - Ockam TCP Transport using smoltcp</a></li>
|
||
</ul>
|
||
<h2 id="updates-from-the-rust-project">Updates from the Rust Project</h2>
|
||
<p>353 pull requests were <a href="https://github.com/search?q=is%3Apr+org%3Arust-lang+is%3Amerged+merged%3A2021-10-04..2021-10-11">merged in the last week</a></p>
|
||
<ul>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/83233">implement <code>split_array</code> and <code>split_array_mut</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/85254">normalize MIR with <code>RevealAll</code> before optimizations.</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/86479">automatic exponential formatting of <code>f</code>{<code>32</code>, <code>64</code>} in <code>Debug</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/86984">reject octal zeros in <code>IPv4</code> addresses</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/87404">add support for artifact size profiling</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/87440">remove unnecessary condition in <code>Barrier::wait()</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88041">make all proc-macro back-compat lints deny-by-default</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88300">stabilise <code>unix_process_wait_more</code>, extra <code>ExitStatusExt</code> methods</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88624">stabilize feature <code>saturating_div</code> for rust 1.58.0</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88789">remove unnecessary bound on <code>Zip</code> specialization impl</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/88860">deduplicate <code>panic_fmt</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89257">give better error for <code>macro_rules name</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89292">stabilize <code>CString::from_vec_with_nul</code>(<code>_unchecked</code>)</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89427">point at overlapping impls when type annotations are needed</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89558">add rustc lint, warning when iterating over hashmaps</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89829">consider types appearing in const expressions to be invariant</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89889">use the "nice E0277 errors" for <code>!Send</code> <code>impl Future</code> from foreign crate</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89895">don't mark <code>for</code> loop iter expression as desugared</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89944">change <code>Duration::</code>(<code>try_</code>)<code>from_secs_</code>{<code>f32</code>, <code>f64</code>} underflow error</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/89956">suggest a case insensitive match name regardless of Levenshtein distance</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/90077">make <code>From</code> impls of <code>NonZero</code> integer const</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/90009">make more <code>From</code> impls <code>const</code> (libcore)</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/90162">mark {<code>array</code>, <code>slice</code>}<code>::</code>{<code>from_ref</code>, <code>from_mut</code>} as <code>const fn</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/90010">avoid overflow in <code>VecDeque::with_capacity_in()</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/90099">fix MIRI UB in <code>Vec::swap_remove</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/90104">implement coherence checks for negative trait impls</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust/pull/90117">make <code>RSplit<T, P>: Clone</code> not require <code>T: Clone</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rustc_codegen_gcc/pull/104">codegen-gcc: disable strict aliasing</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7838">clippy: warn on structs with a trailing zero-sized array but no <code>repr</code> attribute</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7840">clippy: cover <code>Result</code> for <code>question_mark</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7801">clippy: make <code>useless_format</code> recognize <code>format!("")</code></a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7811">clippy: avoid <code>eq_op</code> in test code</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7849">clippy: fix FP in <code>missing_safety_doc</code> lint</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7850">clippy: fix FP: no lint when cast is coming from <code>signum</code> method call for <code>cast_possible_truncation</code> lint</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7856">clippy: <code>missing_safety_doc</code>: handle 'implementation safety' headers as well</a></li>
|
||
<li><a href="https://github.com/rust-lang/rust-clippy/pull/7865">clippy: fix <code>match_str_case_mismatch</code> on uncased chars</a></li>
|
||
</ul>
|
||
<h3 id="rust-compiler-performance-triage">Rust Compiler Performance Triage</h3>
|
||
<p>Multiple regressions this week, several of which were in rollups, without much
|
||
to balance them out on the improvements front.</p>
|
||
<p>Triage done by <strong>@simulacrum</strong>.
|
||
Revision range: <a href="https://perf.rust-lang.org/?start=d45ed7502ad225739270a368528725930f54b7b6&end=3c8f001d454b1b495f7472d8430ef8fdf10aac11&absolute=false&stat=instructions%3Au">d45ed7..3c8f001d</a></p>
|
||
<p>5 Regressions, 4 Improvements, 3 Mixed; 3 of them in rollups;
|
||
35 comparisons made in total</p>
|
||
<p><a href="https://github.com/rust-lang/rustc-perf/blob/master/triage/2021-10-26.md">Full report here</a></p>
|
||
<h3 id="approved-rfcs">Approved RFCs</h3>
|
||
<p>Changes to Rust follow the Rust <a href="https://github.com/rust-lang/rfcs#rust-rfcs">RFC (request for comments) process</a>. These
|
||
are the RFCs that were approved for implementation this week:</p>
|
||
<p><em>No RFCs were approved this week.</em></p>
|
||
<h3 id="final-comment-period">Final Comment Period</h3>
|
||
<p>Every week <a href="https://www.rust-lang.org/team.html">the team</a> announces the
|
||
'final comment period' for RFCs and key PRs which are reaching a
|
||
decision. Express your opinions now.</p>
|
||
<h3 id="rfcs"><a href="https://github.com/rust-lang/rfcs/labels/final-comment-period">RFCs</a></h3>
|
||
<ul>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rfcs/pull/3184">Thread local Cell methods.</a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rfcs/pull/2972">Constrained Naked Functions</a></li>
|
||
</ul>
|
||
<h3 id="tracking-issues-prs"><a href="https://github.com/rust-lang/rust/labels/final-comment-period">Tracking Issues & PRs</a></h3>
|
||
<ul>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/89999">Update <code>std::env::temp_dir</code> to use GetTempPath2 on Windows when available.</a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/89551">Stabilize <code>const_raw_ptr_deref</code> for <code>*const T</code></a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/88805">Clarification of default socket flags</a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/88714">use CLOCK_BOOTTIME in <code>Instant::now</code></a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/88601">Implement <code>Termination</code> for <code>Result<Infallible, E></code></a></li>
|
||
<li>[disposition: close] <a href="https://github.com/rust-lang/rust/pull/87512">Port clippy lint <code>redundant_field_names</code> to compiler</a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/87479">GATs: Decide whether to have defaults for <code>where Self: 'a</code></a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/pull/85766">Stabilize <code>File::options()</code></a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/81793">Tracking Issue for relaxed struct unsizing rules</a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/81383">Tracking Issue for <code>option_result_unwrap_unchecked</code></a></li>
|
||
<li>[disposition: merge] <a href="https://github.com/rust-lang/rust/issues/71126">Tracking Issue for <code>destructuring_assignment</code></a></li>
|
||
<li>[disposition: close] <a href="https://github.com/rust-lang/rust/issues/27747">Tracking issue for <code>slice_concat_ext</code> stabilization</a></li>
|
||
</ul>
|
||
<h3 id="new-rfcs">New RFCs</h3>
|
||
<ul>
|
||
<li><a href="https://github.com/rust-lang/rfcs/pull/3185">Static async fn in traits</a></li>
|
||
</ul>
|
||
<h2 id="upcoming-events">Upcoming Events</h2>
|
||
<h3 id="online">Online</h3>
|
||
<ul>
|
||
<li><a href="https://skillsmatter.com/meetups/13606-rust-london-october2021#community">October 27, 2021, London, UK - Rust London Ockam Takeover - Rust London User Group</a></li>
|
||
<li><a href="https://www.meetup.com/Desert-Rustaceans/events/281215858/">October 27, 2021, Phoenix, AZ - Desert Rust Halloween - Desert Rust</a></li>
|
||
<li><a href="https://cph.rs/">October 28, 2021, Copenhagen, DK - Hack Night #22 - Copenhagen Rust Group</a></li>
|
||
<li><a href="https://www.meetup.com/Buffalo-Rust-Meetup/events/281558952/">November 2, 2021, Buffalo, NY, US - First Tuesdays - Buffalo Rust Meetup</a></li>
|
||
<li><a href="https://www.meetup.com/Seattle-Rust-Meetup/events/gskksryccpbmb/">November 9, 2021, Seattle, WA, US - Monthly Meetup - Seattle Rust Meetup</a></li>
|
||
<li><a href="https://discord.gg/9Xj8H2EXTD">November 10, 2021, Malaysia - Rust Meetup - Rust Malaysia</a></li>
|
||
</ul>
|
||
<h3 id="north-america">North America</h3>
|
||
<ul>
|
||
<li><a href="https://www.meetup.com/Rust-ATL/events/lhpkmsyccpbnb/">November 10, 2021, Atlanta, GA, US - Grab a beer with fellow Rustaceans - Rust Atlanta</a></li>
|
||
</ul>
|
||
<p>If you are running a Rust event please add it to the <a href="https://www.google.com/calendar/embed?src=apd9vmbc22egenmtu5l6c5jbfc%40group.calendar.google.com">calendar</a> to get
|
||
it mentioned here. Please remember to add a link to the event too.
|
||
Email the <a href="mailto:community-team@rust-lang.org">Rust Community Team</a> for access.</p>
|
||
<h1 id="rust-jobs">Rust Jobs</h1>
|
||
<p><strong>Snapview</strong></p>
|
||
<ul>
|
||
<li><a href="https://snapview.jobs.personio.de/job/381815?display=en&language=en">(Senior) Rust Backend Engineer (m/f/d (Remote))</a></li>
|
||
</ul>
|
||
<p><strong>Quickwit</strong></p>
|
||
<ul>
|
||
<li><a href="https://quickwit.io/jobs/distributed-software-engineer">Senior Rust Engineer (Remote: UTC-1..=UTC+9)</a></li>
|
||
</ul>
|
||
<p><strong>Seaplane</strong></p>
|
||
<ul>
|
||
<li><a href="https://apply.workable.com/seaplane/j/CEFCB5F5B8/">Rust Software Engineer (Remote)</a></li>
|
||
</ul>
|
||
<p><strong>Little Bear Labs</strong></p>
|
||
<ul>
|
||
<li><a href="https://apply.workable.com/little-bear-labs/j/D88494543C/">Senior Backend Engineer</a></li>
|
||
</ul>
|
||
<p><strong>Kraken</strong></p>
|
||
<ul>
|
||
<li><a href="https://jobs.lever.co/kraken?team=Engineering">Several Rust Engineering Positions Available</a></li>
|
||
</ul>
|
||
<p><strong>Subspace Labs</strong></p>
|
||
<ul>
|
||
<li><a href="https://jobs.lever.co/subspacelabs">Several Rust Engineering Positions Available</a></li>
|
||
</ul>
|
||
<p><em>Tweet us at <a href="https://twitter.com/ThisWeekInRust">@ThisWeekInRust</a> to get your job offers listed here!</em></p>
|
||
<h1 id="quote-of-the-week">Quote of the Week</h1>
|
||
<blockquote>
|
||
<p>I think in general "force the user to think about the extra cases, and be explicit about ignoring them" is definitely idiomatic rust.</p>
|
||
</blockquote>
|
||
<p>– <a href="https://internals.rust-lang.org/t/pre-rfc-add-a-chunk-iterator-to-libcore/15101/16">Daniel Wagner Hall on rust-internals</a></p>
|
||
<p>Thanks to <a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328/1127">robin</a> for the suggestion!</p>
|
||
<p><a href="https://users.rust-lang.org/t/twir-quote-of-the-week/328">Please submit quotes and vote for next week!</a></p>
|
||
<p><em>This Week in Rust is edited by: <a href="https://github.com/nellshamrell">nellshamrell</a>, <a href="https://github.com/llogiq">llogiq</a>, and <a href="https://github.com/cdmistman">cdmistman</a>.</em></p>
|
||
<p><small><a href="https://www.reddit.com/r/rust/comments/qhehmd/this_week_in_rust_414/">Discuss on r/rust</a></small></p> |