public interface Result<TResult,TData>
TResult
fail(TData data)
success(TData data)
TResult success(TData data)
TResult fail(TData data)