import 'package:pigeon/pigeon.dart';
enum EventEnum {
one,
two,
three,
fortyTwo,
fourHundredTwentyTwo,
}
enum AnotherEventEnum {
justInCase,
}
@SwiftClass()
class EventAllNullableTypes {
EventAllNullableTypes(
this.aNullableBool,
this.aNullableInt,
this.aNullableInt64,
this.aNullableDouble,
this.aNullableByteArray,
this.aNullable4ByteArray,
this.aNullable8ByteArray,
this.aNullableFloatArray,
this.aNullableEnum,
this.anotherNullableEnum,
this.aNullableString,
this.aNullableObject,
this.allNullableTypes,
this.list,
this.stringList,
this.intList,
this.doubleList,
this.boolList,
this.enumList,
this.objectList,
this.listList,
this.mapList,
this.recursiveClassList,
this.map,
this.stringMap,
this.intMap,
this.enumMap,
this.objectMap,
this.listMap,
this.mapMap,
this.recursiveClassMap,
);
bool? aNullableBool;
int? aNullableInt;
int? aNullableInt64;
double? aNullableDouble;
Uint8List? aNullableByteArray;
Int32List? aNullable4ByteArray;
Int64List? aNullable8ByteArray;
Float64List? aNullableFloatArray;
EventEnum? aNullableEnum;
AnotherEventEnum? anotherNullableEnum;
String? aNullableString;
Object? aNullableObject;
EventAllNullableTypes? allNullableTypes;
List? list;
List<String?>? stringList;
List<int?>? intList;
List<double?>? doubleList;
List<bool?>? boolList;
List<EventEnum?>? enumList;
List<Object?>? objectList;
List<List<Object?>?>? listList;
List<Map<Object?, Object?>?>? mapList;
List<EventAllNullableTypes?>? recursiveClassList;
Map? map;
Map<String?, String?>? stringMap;
Map<int?, int?>? intMap;
Map<EventEnum?, EventEnum?>? enumMap;
Map<Object?, Object?>? objectMap;
Map<int?, List<Object?>?>? listMap;
Map<int?, Map<Object?, Object?>?>? mapMap;
Map<int?, EventAllNullableTypes?>? recursiveClassMap;
}
sealed class PlatformEvent {}
class IntEvent extends PlatformEvent {
IntEvent(this.value);
final int value;
}
class StringEvent extends PlatformEvent {
StringEvent(this.value);
final String value;
}
class BoolEvent extends PlatformEvent {
BoolEvent(this.value);
final bool value;
}
class DoubleEvent extends PlatformEvent {
DoubleEvent(this.value);
final double value;
}
class ObjectsEvent extends PlatformEvent {
ObjectsEvent(this.value);
final Object value;
}
class EnumEvent extends PlatformEvent {
EnumEvent(this.value);
final EventEnum value;
}
class ClassEvent extends PlatformEvent {
ClassEvent(this.value);
final EventAllNullableTypes value;
}
@EventChannelApi()
abstract class EventChannelMethods {
int streamInts();
PlatformEvent streamEvents();
int streamConsistentNumbers();
}