blob: e55eb0a2f29f1bdb4807f98bc33ae643bf526f74 [file] [log] [blame]
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:mobx/mobx.dart';
/// Turn Object into an Observable.
extension MobxObjectExtension<T> on T {
Observable<T> asObservable({ReactiveContext? context, String? name}) =>
Observable<T>(this, context: context, name: name);
ObservableFuture asObservableFuture(
{ReactiveContext? context, String? name}) =>
ObservableFuture<T>.value(this, context: context, name: name);
}
/// Turn Function into [Computed].
extension MobxComputedFunctionExtension<T> on T Function() {
Computed<T> asComputed({ReactiveContext? context, String? name}) =>
Computed<T>(this, context: context, name: name);
}
/// Turns a generic Function into [Action].
extension MobxActionFunctionExtension on Function {
Action asAction({ReactiveContext? context, String? name}) =>
Action(this, context: context, name: name);
}