goggles
goggles copied to clipboard
Pleasant, yet principled Scala optics DSL
Allows using `goggles` from Scala.js projects. I know a previous scala.js branch was reverted #44 due to it altering the project layout, on this PR I'm trying to keep things...
This branch enables CI tests on GitHub since it looks like the travis build is no longer working.
Specs2 doesn't have a great ScalaJS story at the moment. We are not using any fancy features with our tests at the moment, we just need asserts and ScalaCheck. If...
On my poor Windows 10 default, the unicode borders of the fancy error tables turn into question marks: ``` Sections ? Types ? Optics ??????????????????????????????????????????????????????????????????????? $myBasket ? ShoppingBasket ? .items...
Lens mode has to start with an interpolated optic, so that it knows the type to start with. If you want to start with something else, it's possible to put...
This is more for discussion rather than saying "we should do it now", but I want to note that dotty seems to be going in the direction of using more...
I was trying to use goggles to modify a value inside a case class with a type parameter (type parameters should remain the same). Simplified, code like this: ```scala import...
When a literal is interpolated in an index position, the type is overspecialised to the exact literal instance type (`Int(1)`, `String("abc")`, `Char('a')` etc), rather than the expected type (`Int`, `String`....
Using the `.name` syntax, `get` and `set` modes generate the most general possible optics, `Getter`s and `Setter`s respectively. This means that more code can participate, such as no-arg methods with...
Case classes naturally support polymorphic update: ``` case class Foo[A](foo: A) val f: Foo[Int] = Foo(3) >> f: Foo[Int] f.copy(_.toString) >> res2: Foo[String] ``` This should work in Goggles too,...