of<T> static method

ObservableValue<T?> of<T>(
  1. dynamic object
)
override

Implementation

static ObservableValue<T?> of<T>(dynamic object) {
  if (T == dynamic) {
    if (object is ObservableValue) {
      return object.cast();
    } else if (object is Stream) {
      return ofStream(object).cast();
    } else if (object is Future) {
      return ofFuture(object).cast();
    } else if (object is Listenable) {
      return ofListenable(object).cast();
    } else if (object is ObservableChannel) {
      return ofChannel(object).cast();
    }
  } else {
    if (object is ObservableValue<T>) {
      return object;
    } else if (object is Stream<T>) {
      return ofStream(object);
    } else if (object is Future<T>) {
      return ofFuture(object);
    } else if (object is Listenable) {
      return ofListenable(object);
    } else if (object is ObservableChannel) {
      return ofChannel(object);
    }
  }

  return ControlObservable<T?>(object is T ? object : null);
}