logger_result library

Classes

Complete
Result もしくは Safety の V に void を指定する代わりに利用するための型.
V が dynamic または Object? を許容できるようにすると 静的型解析が働かず 型解析に関する実行時 error の危険が生じてしまい その場合どこで error が発生したのかわからず追跡が難しい.
Danger<V extends Object, E extends Exception>
Result との違いは E が Object ではなく Exception であること.
成功もしくは失敗の可能性があることを示す型.
V で void を指定したい場合, 代わりに Complete を指定する.
Disaster<V extends Object, EX extends Exception, ER extends Error>
RiskDanger の両方を伴うことを表す型.
Suffer もしくは Survive を返す.
V で void を指定したい場合, 代わりに Complete を指定する.
Failure<V extends Object, E extends Exception>
History
Uneditable form.
Log
LoggerResultInterface
LoggerResultInterface を implements した class を log として追加できるように.
LoggerResultMessageSignature
この class を implements した class が Result.wrapped に設定されたとき LoggerResultMessageSignature.loggerResultMessage の中身が shortHand 表記でも log で表示されるようになる.
LogPart
Panic<E extends Error>
Error が発生したことを表す型.
プログラムを停止させる処理に利用する.
Error をそのまま throw しただけでは log の情報が付与されないため PanicError を wrap する必要がある.
Result<V extends Object>
Risk<V extends Object, E extends Error>
呼び出し側の handling で回避しなければならない error が存在することを示す型.
なので 単純に error を throw する記述があることを示す型ではない.
例えば exception handling で throw out で error を throw する記述をするが その error は この Risk 型で示す対象ではない.
V で void を指定したい場合, 代わりに Complete を指定する.
error だった場合 throw されるので 返り値は は success のみである.
また このときの E は error があることを呼び出し側に示すためだけにあるので 表記できればそれで仕事はおわりである.
Safety<V extends Object>
Danger とは対照的に 必ず 成功した結果を返すことを示す型.
V で void を指定したい場合, 代わりに Complete を指定する.
Success<V extends Object, E extends Exception>
Suffer<V extends Object, EX extends Exception, ER extends Error>
Survive<V extends Object, EX extends Exception, ER extends Error>

Typedefs

FutureComplete = Future<Complete>
FutureDanger<V extends Object, E extends Exception> = Future<Danger<V, E>>
FutureDisaster<V extends Object, EX extends Exception, ER extends Error> = Future<Disaster<V, EX, ER>>
FutureFailure<V extends Object, E extends Exception> = Future<Failure<V, E>>
FutureResult<V extends Object, EX extends Exception, ER extends Error> = Future<Result<V>>
FutureSafety<V extends Object> = Future<Safety<V>>
FutureSuccess<V extends Object, E extends Exception> = Future<Success<V, E>>

Exceptions / Errors

LoggerResultException
LoggerResultlError
  • LoggerResultlErrorA Result.wrapped is not expected. Can't call Result.asExpected.

  • LoggerResultlErrorB Result.wrapped is not exception. Can't call Result.asException.

  • LoggerResultlErrorC Result.wrapped is not error. Can't call Result.asError.

  • LoggerResultlErrorD never reached proccess.

  • LoggerResultlErrorE

  • LoggerResultlErrorF

  • LoggerResultlErrorG

  • LoggerResultlErrorA
    Result.wrapped is not expected. Can't call Result.asExpected.
    LoggerResultlErrorB
    Result.wrapped is not exception. Can't call Result.asException.
    LoggerResultlErrorC
    Result.wrapped is not error. Can't call Result.asError.
    LoggerResultlErrorD
    never reached proccess.