Skip to content

Instantly share code, notes, and snippets.

View fchaillou's full-sized avatar

Fabien Chaillou fchaillou

View GitHub Profile
@fchaillou
fchaillou / AlamofireExtensions.swift
Created March 1, 2016 00:00
Alamofire Result to Antitypical Result conversion
import Alamofire
import Foundation
import enum Result.Result
extension Alamofire.Result {
func toStandard() -> Result<Value, Error> {
switch(self) {
case Alamofire.Result.Success(let value) : return Result.Success(value)
case Alamofire.Result.Failure(let error) : return Result.Failure(error)
}
public func streamMessages(from startOffset: Offset = Offset(value: 0), toExclusive endOffsetOpt : Offset? = .None,
includeTransient: Bool = true) -> SignalProducer<Message, NoError> {
func streamMessagesChunk(from: Offset) -> SignalProducer<Message, NoError> {
func waitForNewMessageAvailable(from: Offset) -> SignalProducer<Offset?, NoError> {
return self.lastOffsetIncludingTransient(includeTransient).producer
.filter{ offsetOpt in offsetOpt.map {offset in offset >= from } ?? false }
.take(1)
@fchaillou
fchaillou / MetadataBug.scala
Created September 2, 2016 19:12
EventStoreJvm bug when fetching metadata
import java.util.UUID
import akka.actor.ActorSystem
import eventstore.EventStream.Id
import eventstore.{Content, EventData, EventStoreExtension, WriteEvents}
import scala.concurrent.Await
import scala.concurrent.duration.Duration
@fchaillou
fchaillou / CallbackWrapper.scala
Created November 8, 2016 20:34
Issue with callback on materialized value after stream is stopped because of error
package akka.stream.contrib
trait CallbackWrapper[T] extends AsyncCallback[T] {
private trait CallbackState
private case class NotInitialized(list: List[T]) extends CallbackState
private case class Initialized(f: T ⇒ Unit) extends CallbackState
private case class Stopped(f: T ⇒ Unit) extends CallbackState
/*
* To preserve message order when switching between not initialized / initialized states