scala-extensions
scala-extensions copied to clipboard
Useful extensions for the Scala standard library
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"