shoggoth

Crates.ioshoggoth
lib.rsshoggoth
version0.0.19
sourcesrc
created_at2015-01-04 10:07:45.211996
updated_at2015-12-11 23:55:55.315022
descriptionGeneric and type-level programming for Rust
homepage
repositoryhttps://github.com/epsilonz/shoggoth.rs
max_upload_size
id704
size48,279
Darin Morrison (freebroccolo)

documentation

http://epsilonz.github.io/shoggoth.rs/doc/shoggoth/

README

shoggoth.rs

Generic and type-level programming for Rust

build status

It was a terrible, indescribable thing vaster than any subway train—a shapeless congeries of protoplasmic bubbles, faintly self-luminous, and with myriads of temporary eyes forming and un-forming as pustules of greenish light all over the tunnel-filling front that bore down upon us, crushing the frantic penguins and slithering over the glistening floor that it and its kind had swept so evilly free of all litter.

—H. P. Lovecraft, At The Mountains of Madness

Synopsis

This library implements generic and type-level programming functionality. It is heavily inspired by Miles Sabin's Shapeless for Scala.

Features

Current

  • heterogeneous lists
  • type-level operations (polyadic, curried, composable, higher-order)
  • type-level bits and booleans
  • type-level binary natural numbers and integers
  • type-level lists (mappable with type-level operations)
  • type-level list zippers
  • type-level lenses

Future

  • more functionality for working with hlists/tuples
  • coproducts
  • hlist/vinyl-style records
  • type-level binary rationals
  • type macros

Documentation

See the API documentation here.

Requirements

  1. Rust
  2. Cargo

You can install both with the following:

$ curl -s https://static.rust-lang.org/rustup.sh | sudo sh

See Installing Rust for further details.

Usage

$ cargo build       ## build library and binary
$ cargo test        ## run tests in ./tests
$ cargo bench       ## run benchmarks in ./benches

Discussion

There is an IRC channel on freenode (chat.freenode.net) at #epsilonz.

Commit count: 0

cargo fmt