apply method

dynamic apply(
  1. HTStruct struct, {
  2. List positionalArgs = const [],
  3. Map<String, dynamic> namedArgs = const {},
})

Implementation

dynamic apply(
  HTStruct struct, {
  List<dynamic> positionalArgs = const [],
  Map<String, dynamic> namedArgs = const {},
}) {
  final savedNamespace = namespace;
  final savedInstance = instance;
  namespace = struct.namespace;
  instance = struct;
  final result = call(
    positionalArgs: positionalArgs,
    namedArgs: namedArgs,
  );
  if (result is Future) {
    return result.then((value) {
      namespace = savedNamespace;
      instance = savedInstance;
      return value;
    });
  } else {
    namespace = savedNamespace;
    instance = savedInstance;
    return result;
  }
}