implement static method

CAMediaTiming implement({
  1. required double beginTime(),
  2. required void setBeginTime_(
    1. double
    ),
  3. required double duration(),
  4. required void setDuration_(
    1. double
    ),
  5. required double speed(),
  6. required void setSpeed_(
    1. double
    ),
  7. required double timeOffset(),
  8. required void setTimeOffset_(
    1. double
    ),
  9. required double repeatCount(),
  10. required void setRepeatCount_(
    1. double
    ),
  11. required double repeatDuration(),
  12. required void setRepeatDuration_(
    1. double
    ),
  13. required bool autoreverses(),
  14. required void setAutoreverses_(
    1. bool restartFlag
    ),
  15. required DartCADynamicRange fillMode(),
  16. required void setFillMode_(
    1. NSString format
    ),
  17. bool $keepIsolateAlive = true,
})

Builds an object that implements the CAMediaTiming protocol. To implement multiple protocols, use addToBuilder or objc.ObjCProtocolBuilder directly.

If $keepIsolateAlive is true, this protocol will keep this isolate alive until it is garbage collected by both Dart and ObjC.

Implementation

static CAMediaTiming implement({
  required DartCFTimeInterval Function() beginTime,
  required void Function(DartCFTimeInterval) setBeginTime_,
  required DartCFTimeInterval Function() duration,
  required void Function(DartCFTimeInterval) setDuration_,
  required double Function() speed,
  required void Function(double) setSpeed_,
  required DartCFTimeInterval Function() timeOffset,
  required void Function(DartCFTimeInterval) setTimeOffset_,
  required double Function() repeatCount,
  required void Function(double) setRepeatCount_,
  required DartCFTimeInterval Function() repeatDuration,
  required void Function(DartCFTimeInterval) setRepeatDuration_,
  required bool Function() autoreverses,
  required void Function(bool) setAutoreverses_,
  required objc.NSString Function() fillMode,
  required void Function(DartCAMediaTimingFillMode) setFillMode_,
  bool $keepIsolateAlive = true,
}) {
  final builder = objc.ObjCProtocolBuilder(debugName: 'CAMediaTiming');
  CAMediaTiming.beginTime.implement(builder, beginTime);
  CAMediaTiming.setBeginTime_.implement(builder, setBeginTime_);
  CAMediaTiming.duration.implement(builder, duration);
  CAMediaTiming.setDuration_.implement(builder, setDuration_);
  CAMediaTiming.speed.implement(builder, speed);
  CAMediaTiming.setSpeed_.implement(builder, setSpeed_);
  CAMediaTiming.timeOffset.implement(builder, timeOffset);
  CAMediaTiming.setTimeOffset_.implement(builder, setTimeOffset_);
  CAMediaTiming.repeatCount.implement(builder, repeatCount);
  CAMediaTiming.setRepeatCount_.implement(builder, setRepeatCount_);
  CAMediaTiming.repeatDuration.implement(builder, repeatDuration);
  CAMediaTiming.setRepeatDuration_.implement(builder, setRepeatDuration_);
  CAMediaTiming.autoreverses.implement(builder, autoreverses);
  CAMediaTiming.setAutoreverses_.implement(builder, setAutoreverses_);
  CAMediaTiming.fillMode.implement(builder, fillMode);
  CAMediaTiming.setFillMode_.implement(builder, setFillMode_);
  builder.addProtocol($protocol);
  return CAMediaTiming.castFrom(
    builder.build(keepIsolateAlive: $keepIsolateAlive),
  );
}