Skip to content

Instantly share code, notes, and snippets.

View gladimdim's full-sized avatar
💭
Unreal Engine

Dmytro Gladkyi gladimdim

💭
Unreal Engine
View GitHub Profile
CallCenter() {
workers.addAll([
Responder(type: ResponderType.Worker, name: "Responder A"),
Responder(type: ResponderType.Worker, name: "Responder B"),
Responder(type: ResponderType.Worker, name: "Responder C"),
Responder(type: ResponderType.Worker, name: "Responder D"),
]);
managers.addAll([
Responder(type: ResponderType.Manager, name: "Manager A"),
class Responder {
final ResponderType type;
Call call;
final String name;
Responder({this.type, this.name});
void respondToCall(Call incoming) {
if (isBusy()) {
throw ResponderBusyException('Responder $name of type $type is busy.');
class Call {
String msg;
List<Function> endCallCallbacks = [];
Call(this.msg);
addEndCallback(Function callback) {
endCallCallbacks.add(callback);
}
@gladimdim
gladimdim / Call.dart
Created April 11, 2019 08:37
First Call Impelementation
class Call {
String msg;
Call({this.msg});
}
type state = string;
let action =
| Load
| Unload;
let component = ReasonReact.reducerComponent("New");
let make = _children => {
...component,
type tSemver = Js.t(semverInstance);
[@bs.new] [@bs.module] external createSemver : string => tSemver = "semver";
class type semverInstance =
[@bs]
{
pub inc: tRelease => semverInstance;
pub version: string;
pub major: int;
pub minor: int;
pub patch: int;
pub raw: string;
pub build: array(string);
[@bs.module "semver"] [@bs.val]
external cmp : (string, string, string) => bool = "cmp";
let cmp = (a: string, c: comparator, b: string) =>
cmp(a, c |> comparatorToString, b);
let comparatorToString = comparator : string =>
switch (comparator) {
| LooseEqual => "=="
| LooseNotEqual => "!=="
| Equal => "==="
| Empty => ""
| NotEqual => "!=="
| Gt => ">"
| Gte => ">="
| Lt => "<"
@gladimdim
gladimdim / cmp.re
Created May 25, 2018 11:08
comparator
[@bs.module "semver"] [@bs.val]
external cmp : (string, string, string) => bool = "cmp";