Skip to content

Instantly share code, notes, and snippets.

View myanmarlinks's full-sized avatar

Myanmar Links myanmarlinks

View GitHub Profile
import 'dart:async';
main(List<String> arguments) {
var controller = StreamController<String>.broadcast();
var streamTransformer = StreamTransformer<String, String>.fromHandlers(
handleData: (String data, EventSink sink) {
switch(data) {
case "fool":
sink.add("You $data");
import 'dart:async';
void main() {
var streamController = StreamController<String>.broadcast(
onListen: () => print('onListen'),
onCancel: () => print("onCancel"),
);
StreamSubscription sub = streamController.stream.listen(
(data) => print('Got $data'),
onError: (err) => print("Got $err"),
import 'dart:async';
void main() {
var streamController = StreamController<String>(
onListen: () => print('onListen'),
onCancel: () => print("onCancel"),
onPause: () => print("onPause"),
onResume: () => print("onResume")
);
StreamSubscription sub = streamController.stream.listen(
@myanmarlinks
myanmarlinks / sealed_classes_5.kt
Created July 8, 2019 13:24
Bridge to Kotlin Part 8
fun main(args: Array<String>) {
val screenState = ScreenState.Data(SomeData(1, "Hello World"))
setScreenState(screenState)
}
fun setScreenState(screenState: ScreenState) {
when(screenState) {
is ScreenState.Error -> println("Error")
is ScreenState.Loading -> println("Loading")
is ScreenState.Data -> {
@myanmarlinks
myanmarlinks / sealed_classes_4.kt
Created July 8, 2019 13:22
Bridge to Kotlin Part 8
data class SomeData(val id: Int, val name: String)
enum class ScreenStateField(val someData: SomeData) {
ERROR(SomeData(1, "some data 1")),
LOADING(SomeData(2, "some data 2")),
DATA(SomeData(3, "some data 3"))
}
@myanmarlinks
myanmarlinks / sealed_classes_3.kt
Created July 8, 2019 13:21
Bridge to Kotlin Part 8
fun main(args: Array<String>) {
val basicScreenState = BasicScreenState.ERROR
setBasicScreenState(basicScreenState)
}
enum class BasicScreenState {
ERROR,
LOADING,
DATA
}
fun setBasicScreenState(basicScreenState: BasicScreenState) {
@myanmarlinks
myanmarlinks / sealed_classes_2.kt
Created July 8, 2019 13:19
Bridge to Kotlin Part 8
fun main(args: Array<String>) {
val mammal: Human = Human("John Doe","CEO")
println(greetMammal(mammal))
val cat = Cat("Shwe War")
println(greetMammal(cat))
}
fun greetMammal(mammal: Mammal): String {
when(mammal) {
is Human -> return "Hello ${mammal.name}; You're working as a ${mammal.job}"
@myanmarlinks
myanmarlinks / sealed_classes.kt
Created July 8, 2019 13:18
Bridge to Kotlin Part 8
fun main(args: Array<String>) {
val mammal: Human = Human("John Doe","CEO")
println(greetMammal(mammal))
val cat = Cat("Shwe War")
println(greetMammal(cat))
}
fun greetMammal(mammal: Mammal): String {
when(mammal) {
is Human -> return "Hello ${mammal.name}; You're working as a ${mammal.job}"
@myanmarlinks
myanmarlinks / enum_class.kt
Created July 8, 2019 13:16
Bridge to Kotlin Part 8
fun main(args: Array<String>) {
val myToday = MyDays.SUN
when(myToday) {
MyDays.SUN -> println(myToday)
}
val today = Days.SAT
when(today) {
Days.SAT -> println(Days.SAT.value)
}
@myanmarlinks
myanmarlinks / subscribers.dart
Last active July 1, 2019 15:14
Dart Basic Part 3
import 'dart:async';
Stream<int> createNumberStream(int last) async* {
for(int i=1; i <= last; i++) {
if(i==5) {
throw new Exception(
"Demo exception when accessing 5th number"
);
}
yield i;