8 releases (breaking)

0.7.0 May 2, 2019
0.6.0 Mar 16, 2019
0.5.0 Mar 15, 2019
0.4.0 Mar 15, 2019
0.1.0 Feb 2, 2019

#2890 in Rust patterns

MIT license

24KB
423 lines

Description

This library contains my personal Rust prelude and utilities.

Design goals

  • Remove the hassle of having to add use statements for very common standard library types
  • Reduce the amount of code that actually has to be written
  • Alleviate common Rust pain points

This library is meant to improve your experience writing Rust no matter what you are writing code for. The patterns it tackles are mostly ones that the average Rust programmer encounters on a daily basis.

API Documentation


lib.rs:

Description

This library contains my personal Rust prelude and utilities.

Design goals

  • Remove the hassle of having to add use statements for very common standard library types
  • Reduce the amount of code that actually has to be written
  • Alleviate common Rust pain points

This library is meant to improve your experience writing Rust no matter what you are writing code for. The patterns it tackles are mostly ones that the average Rust programmer encounters on a daily basis.

Utilities

I have made some very simple utilities to aid in writing Rust code:

Modules

  • thread Adds custom thread type as well as reexporting std::thread::* for convenience.

Functions

  • order Functions for fully ordering PartialOrd types
  • close Functions for checking if two floating-point numbers are close enough to be considered equal
  • promote_then Temporarily gain access to an immutable reference as mutable

Traits

  • BoolMap Maps bools to Options in one line
  • Bind Allows the binding and mutation of a value in a single line
  • KaiIterator Generates my custom iterator adapters

Structs

  • Adapter Wraps a reference to a string representation of some type
  • Swap Wrapper that allows consuming transformations on borrowed data

Types

Macros

  • variant! Maps an enum to an option for use with Iterator::filter_map
  • transparent_mod! Declares transparent external child modules
  • cond_vec! Conditionally construct Vecs

No runtime deps