Useful extensions for the Scala standard library
Scala
Clone or download
Latest commit 6565cc2 Apr 17, 2017
Permalink
Failed to load latest commit information.
project
src
.gitignore
LICENSE.txt
readme.txt

readme.txt

scala-extensions: Useful extensions for the Scala standard library
http://cvogt.org/scala-extensions/

Contents:

Type-level helpers
- EnumerateSingletons - listing all objects extending a sealed trait
- Defaults - object giving names access to a class's default values

Collection extensions (org.cvogt.collection)
- distinctBy - remove duplicates by key
- foldWhile / reduceWhile - stoppable accumulation
- concat - type-safe alternative to mkString
- containsTyped

String extensions
- stripIndent - alternative to stripMargin not requiring |
- indent/indent(n) - indents each line
- commonLinePrefix, trimLeft, trimRight, trimLinesLeft, trimLinesRight
- containsTyped

Debug (org.cvogt.scala.debug)
- printCodeAfterTyper(...) - Prints code after implicits, macros and code desugaring have been applied.
- (t: Throwable).showStackTrace that returns stack tract as string

Type safety
- safe"..." alternative to s"..." that requires explicit toString conversions rather than implicit

Type-level constraints (org.cvogt.constraints)
- CaseClass and SingletonObject type classes
- Comparisons: <:<, =:=, >:>, !=:=, !<:<, !>:>, e.g. String !=:= And
- Boolean Algebra: True, False, ==, !, &&, ||, Implies, Xor
- Subset tests: In, NotIn, e.g. Int NotIn (Any,AnyRef,AnyVal)

Others
- alternative `->` that works as constructor, extractor, type

For usage see:
src/test/scala/*

Sbt setup:

libraryDependencies += "org.cvogt" %% "scala-extensions" % "0.5.3"