@CheckResult @NonNull
  public final <T> Observable<T> mapToOneOrDefault(@NonNull Function<Cursor, T> mapper,
      @NonNull T defaultValue) {
    return lift(Query.mapToOneOrDefault(mapper, defaultValue));
  }
@ CheckResult @ NonNull public final < T > Observable < T > mapToOneOrDefault ( @ NonNull Function < Cursor , T > mapper , @ NonNull T defaultValue ) { return lift ( Query . mapToOneOrDefault ( mapper , defaultValue ) ) ; }
Given a function mapping the current row of a {@link Cursor} to {@code T}, transform each
emitted {@link Query} which returns a single row to {@code T}.
<p>
It is an error for a query to pass through this operator with more than 1 row in its result
set. Use {@code LIMIT 1} on the underlying SQL query to prevent this. Result sets with 0 rows
emit {@code defaultValue}.
<p>
This method is equivalent to:
<pre>{@code
flatMap(q -> q.asRows(mapper).take(1).defaultIfEmpty(defaultValue))
}</pre>
and a convenience operator for:
<pre>{@code
lift(Query.mapToOneOrDefault(mapper, defaultValue))
}</pre>

@param mapper Maps the current {@link Cursor} row to {@code T}. May not return null.
@param defaultValue Value returned if result set is empty