Skip to content

Instantly share code, notes, and snippets.

Hello Everyone, I have a problem that I cannot really wrap my head around.
I am writing a component which displays wraps any kind of data in a specific way. It then applies a function to said data, which can also be specified by the user.

I would like to avoid going too much into detail, unless it helps to solve the question.
The component displays the passed data - 1, data, data + 1.

This is how one would use the component:

<app-data-container [data]="myData" [transformFn]="myTransformationFunction">
trait RSeq[+A] extends Reactive[RSeqDelta[A], Seq[A]] {
def now: Seq[A]
def size: Signal[Int]
def apply(idx: Int): Signal[A]
def contains[B >: A](a: B): Signal[Boolean]
def count(p: A=>Boolean): Signal[Int]
def sigCount(p: A=>Boolean): Signal[Int]
def exists(p: A=>Boolean): Signal[Boolean]
def sigExists(p: A=>Boolean): Signal[Boolean]
style = IntelliJ
align = more
maxColumn = 120
docstrings = ScalaDoc
align.tokens = [
{code = "=>", owner = "Case"},
{code = ":", owner = ".*"},
{code = "=", owner = ".*"},
{code = "extends", owner = ".*"},
{code = "%", owner = "Term.ApplyInfix"},
@busti
busti / CollectionUtil.scala
Created March 18, 2019 15:39
A list of alternatingly typed elements.
import scala.collection.{mutable, _}
final class Alternating[Even, Odd] private(val first: Even, val rest: Seq[(Odd, Even)])
extends immutable.Iterable[Either[Even, Odd]] {
self =>
def this(firstElement: Even) = this(firstElement, Seq())
def appended[E >: Even, O >: Odd](elem: (O, E)): Alternating[E, O] =
new Alternating[E, O](first, rest :+ elem)
object Interpolators {
implicit class Regex(sc: StringContext) {
def r = new util.matching.Regex(sc.parts.mkString, sc.parts.tail.map(_ => "x"): _*)
}
implicit class IndentHelper(val sc: StringContext) extends AnyVal {
import sc._
def process = StringContext.treatEscapes _
@busti
busti / build.sbt
Created December 3, 2018 23:10
Buildfile for an outwatch project, outdated
name := "foobar"
val commonSettings = Seq(
scalaVersion := "2.12.6",
version := "1.0",
resolvers += "jitpack" at "https://jitpack.io",
)
// Projects //
class Test {
case class Item(
name: String
)
case class Model(
items: Vector[Item],
selected: Item
)
@busti
busti / FuckMyLife.scala
Created September 13, 2018 14:03
Satisfies exhaustiveness for some reason (in scalafiddle, test in scalac later)
import scala.util.Random
// Parent Event definitions
sealed trait Event
case object Noop extends Event
trait TypedEvent[M] extends Event
@busti
busti / Builder.scala
Last active June 9, 2018 08:50
Builds an rx tree.
object Builder {
implicit def rx2tree(rx: Rx[_]) = show(rx)
sealed trait RxTree
final case class Branch(rx: Rx[Any], branches: RxTree *) extends RxTree
final case class RxBranch(rx: Rx[Any], input: RxTree, branches: Rx[Option[RxTree]]) extends RxTree
final case class Leaf(rx: Rx[Any]) extends RxTree
val flatMapStreams = mutable.Map[FlatMap[_, _], Rx[Option[RxTree]]]()
@busti
busti / Navbar.scala
Created June 4, 2018 15:24
Event stream navbar
import mhtml._
import scala.xml.Node
class Navbar {
sealed trait Event
object Events {
case object Noop extends Event
case object Open extends Event
case object Close extends Event
case object Toggle extends Event