org.kynthus.hatalib.argparse.instance.SetupInstances0.scala Maven / Gradle / Ivy
The newest version!
package org.kynthus.hatalib.argparse.instance
import org.kynthus.hatalib.argparse.concept.Setup
import org.kynthus.hatalib.argparse.syntax.SetupSyntax.SetupOps
import org.kynthus.hatalib.core.concept.{ResultCategory, Run}
import org.kynthus.hatalib.core.syntax.TagSyntax.TagOps
import scalaz.syntax.applicative.ApplicativeIdV
import scalaz.syntax.bind.ToBindOps
import scalaz.syntax.tag.ToTagOps
import scalaz.{@@, Applicative, Bind, Optional}
import scopt.{DefaultOParserSetup, OParserSetup, RenderingMode}
import shapeless.labelled.FieldType
import shapeless.ops.record.{Selector, Updater}
import shapeless.record.recordOps
import shapeless.{HList, Refute}
import scala.language.higherKinds
/**
* パーサの動作設定を上書きする型クラスインスタンスの第1候補です。
*
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
private[instance] trait SetupInstances0 extends Any {
/**
* 構築中の情報へパーサの動作設定を追加します。
*
* @param runCategory 動作設定を持つ値を格納する型を決定するマーカー
* @param applicative 構築中の情報をラップ可能なことを保証する
* @param setupUpdater パーサの動作設定を追加可能なことを保証する
* @param setupNotExist パーサの動作設定をまだ保持していないことを保証する
* @tparam InsertingSetup 動作設定の追加対象となる型
* @tparam UnusedKeys パーサへのオプション追加時に使用する幽霊型(動作設定時は未使用)
* @tparam InsertedSetup 動作設定を追加した後の型
* @tparam InsertedCategory 構築中の情報をラップする型
* @return 構築中の情報へパーサの動作設定を追加する型クラスインスタンス
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
implicit final def InsertSetup[
InsertingSetup <: HList,
UnusedKeys,
InsertedSetup <: HList,
InsertedCategory[_]
](
implicit
runCategory: ResultCategory[InsertedCategory] @@ Run.type,
applicative: Applicative[InsertedCategory],
setupUpdater: Updater.Aux[
InsertingSetup,
FieldType[
SetupRecord.T,
OParserSetup
],
InsertedSetup
],
setupNotExist: Refute[
Selector[
InsertingSetup,
SetupRecord.T
]
]
): Setup.Aux[
InsertingSetup @@ UnusedKeys,
InsertedCategory[InsertedSetup @@ UnusedKeys]
] = SetupInstances0.InsertSetup
/**
* 構築中の情報が持つパーサの動作設定を更新します。
*
* @param runCategory 動作設定を持つ値を格納する型を決定するマーカー
* @param applicative 構築中の情報をラップ可能なことを保証する
* @param setupSelector パーサの動作設定が既に存在することを保証する
* @param setupUpdater パーサの動作設定を更新可能なことを保証する
* @tparam UnusedKey パーサへのオプション追加時に使用する幽霊型(動作設定時は未使用)
* @tparam HasSetup 動作設定の型(更新前・更新後で同一)
* @tparam UpdatedCategory 構築中の情報をラップする型
* @return 構築中の情報が持つパーサの動作設定を更新する型クラスインスタンス
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
implicit final def UpdateSetup[
UnusedKey,
HasSetup <: HList,
UpdatedCategory[_]
](
implicit
runCategory: ResultCategory[UpdatedCategory] @@ Run.type,
applicative: Applicative[UpdatedCategory],
setupSelector: Selector.Aux[
HasSetup,
SetupRecord.T,
OParserSetup
],
setupUpdater: Updater.Aux[
HasSetup,
FieldType[
SetupRecord.T,
OParserSetup
],
HasSetup
]
): Setup.Aux[
HasSetup @@ UnusedKey,
UpdatedCategory[HasSetup @@ UnusedKey]
] = SetupInstances0.UpdateSetup
/**
* ラップされた型が持つ構築中の情報のパーサ動作設定を設定します。
*
* @param runCategory 動作設定を持つ値を格納する型を決定するマーカー
* @param bind 平坦化変換が可能なことを保証する
* @param base ラップされた型に対してパーサの動作設定が行えることを保証する
* @tparam InsertingSetup 動作設定の設定対象となる型
* @tparam InsertedSetup 動作設定を設定した後の型
* @tparam InsertedCategory 構築中の情報をラップする型
* @return ラップされた型が持つ構築中の情報に対しパーサ動作設定を設定する型クラスインスタンス
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
implicit final def CategorySetup[
InsertingSetup,
InsertedSetup,
InsertedCategory[_]
](
implicit
runCategory: ResultCategory[InsertedCategory] @@ Run.type,
bind: Bind[InsertedCategory],
base: Setup.Aux[
InsertingSetup,
InsertedCategory[InsertedSetup]
]
): Setup.Aux[
InsertedCategory[InsertingSetup],
InsertedCategory[InsertedSetup]
] = SetupInstances0.CategorySetup
}
/**
* パーサの動作設定を上書きする型クラスインスタンスの第1候補を内部的に定義します。
*
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
private object SetupInstances0 extends AnyRef {
/**
* 構築中の情報へパーサの動作設定を追加します(内部)。
*
* @param runCategory 動作設定を持つ値を格納する型を決定するマーカー
* @param applicative 構築中の情報をラップ可能なことを保証する
* @param setupUpdater パーサの動作設定を追加可能なことを保証する
* @param setupNotExist パーサの動作設定をまだ保持していないことを保証する
* @tparam InsertingSetup 動作設定の追加対象となる型
* @tparam UnusedKeys パーサへのオプション追加時に使用する幽霊型(動作設定時は未使用)
* @tparam InsertedSetup 動作設定を追加した後の型
* @tparam InsertedCategory 構築中の情報をラップする型
* @return 構築中の情報へパーサの動作設定を追加する型クラスインスタンス
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
private final def InsertSetup[
InsertingSetup <: HList,
UnusedKeys,
InsertedSetup <: HList,
InsertedCategory[_]
](
implicit
runCategory: ResultCategory[InsertedCategory] @@ Run.type,
applicative: Applicative[InsertedCategory],
setupUpdater: Updater.Aux[
InsertingSetup,
FieldType[
SetupRecord.T,
OParserSetup
],
InsertedSetup
],
setupNotExist: Refute[
Selector[
InsertingSetup,
SetupRecord.T
]
]
): Setup.Aux[
InsertingSetup @@ UnusedKeys,
InsertedCategory[InsertedSetup @@ UnusedKeys]
] = new Setup[InsertingSetup @@ UnusedKeys] {
/**
* パーサの動作設定を追加した後の型です。
*
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override type Result = InsertedCategory[InsertedSetup @@ UnusedKeys]
/**
* ユーザ定義したパーサ動作設定を追加します。
*
* @param derived パーサの動作設定を持つ値
* @param setup 追加する動作設定
* @return 全項目がユーザ定義された動作設定を追加した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def apply
(
derived: => InsertingSetup @@ UnusedKeys,
setup: OParserSetup
): super.Result = this (derived) = setup
/**
* パーサの出力形式のみユーザ定義し、それ以外をデフォルトの動作とします。
*
* @param derived パーサの動作設定を持つ値
* @param mode 出力形式
* @return パーサの出力形式のみユーザ定義し、それ以外をデフォルトの動作とした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def renderingMode
(
derived: => InsertingSetup @@ UnusedKeys,
mode: RenderingMode
): super.Result = this (derived) = new DefaultOParserSetup {}.withRenderingMode(mode)
/**
* 未知のオプションに対する扱いのみユーザ定義し、それ以外をデフォルトの動作とします。
*
* @param derived パーサの動作設定を持つ値
* @param isError エラー扱いとする場合は`true`、しない場合は`false`
* @return 未知のオプションに対する扱いのみユーザ定義し、それ以外をデフォルトの動作とした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def errorOnUnknownArgument
(
derived: => InsertingSetup @@ UnusedKeys,
isError: Boolean
): super.Result = this (derived) = new DefaultOParserSetup {}.withErrorOnUnknownArgument(isError)
/**
* コマンド使用方法の表示有無のみユーザ定義し、それ以外をデフォルトの動作とします。
*
* @param derived パーサの動作設定を持つ値
* @param isShow `true`を持つ有効値の場合は表示し、それ以外の場合は表示しない
* @tparam UnusedCategory 型パラメータを持ち、値を持たない可能性を表現可能な型
* @return コマンド使用方法の表示有無のみユーザ定義し、それ以外をデフォルトの動作とした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def showUsageOnError[UnusedCategory[_] : Optional]
(
derived: => InsertingSetup @@ UnusedKeys,
isShow: UnusedCategory[Boolean]
): super.Result = this (derived) = new DefaultOParserSetup {}.withShowUsageOnError(isShow)
/**
* 正常なメッセージの扱いのみユーザ定義し、それ以外をデフォルトの動作とします。
*
* @param derived パーサの動作設定を持つ値
* @param display メッセージに対する処理
* @tparam Unused メッセージに対する処理の結果得られる型(最終的に[[scala.Unit]]となり破棄)
* @return 正常なメッセージの扱いのみユーザ定義し、それ以外をデフォルトの動作とした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def displayToOut[Unused]
(
derived: => InsertingSetup @@ UnusedKeys,
display: String => Unused
): super.Result = this (derived) = new DefaultOParserSetup {}.withDisplayToOut(display)
/**
* エラーメッセージの扱いのみユーザ定義し、それ以外をデフォルトの動作とします。
*
* @param derived パーサの動作設定を持つ値
* @param display メッセージに対する処理
* @tparam Unused メッセージに対する処理の結果得られる型(最終的に[[scala.Unit]]となり破棄)
* @return エラーメッセージの扱いのみユーザ定義し、それ以外をデフォルトの動作とした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def displayToErr[Unused]
(
derived: => InsertingSetup @@ UnusedKeys,
display: String => Unused
): super.Result = this (derived) = new DefaultOParserSetup {}.withDisplayToErr(display)
/**
* エラー発生時のレポートの処理のみユーザ定義し、それ以外をデフォルトの動作とします。
*
* @param derived パーサの動作設定を持つ値
* @param report レポート処理
* @tparam Unused レポート処理後に得られる型(最終的に[[scala.Unit]]となり破棄)
* @return エラー発生時のレポートの処理のみユーザ定義し、それ以外をデフォルトの動作とした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def reportError[Unused]
(
derived: => InsertingSetup @@ UnusedKeys,
report: String => Unused
): super.Result = this (derived) = new DefaultOParserSetup {}.withReportError(report)
/**
* 警告発生時のレポートの処理のみユーザ定義し、それ以外をデフォルトの動作とします。
*
* @param derived パーサの動作設定を持つ値
* @param report レポート処理
* @tparam Unused レポート処理後に得られる型(最終的に[[scala.Unit]]となり破棄)
* @return 警告発生時のレポートの処理のみユーザ定義し、それ以外をデフォルトの動作とした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def reportWarning[Unused]
(
derived: => InsertingSetup @@ UnusedKeys,
report: String => Unused
): super.Result = this (derived) = new DefaultOParserSetup {}.withReportWarning(report)
/**
* 終了動作のみユーザ定義し、それ以外をデフォルトの動作とします。
*
* @param derived パーサの動作設定を持つ値
* @param terminator ヘルプおよびバージョン情報表示後に呼ばれる終了処理
* @tparam UnusedResult 終了処理後に得られる型(最終的に[[scala.Unit]]となり破棄)
* @return 終了動作のみユーザ定義し、それ以外をデフォルトの動作とした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def terminate[UnusedResult]
(
derived: => InsertingSetup @@ UnusedKeys,
terminator: Either[String, Unit] => UnusedResult
): super.Result = this (derived) = new DefaultOParserSetup {}.withTerminate(terminator)
/**
* 構築中の情報へパーサの動作設定を追加します。
*
* @param derived パーサの動作設定を持つ値
* @param setup 追加するパーサの動作設定
* @return 構築中の情報へパーサの動作設定を追加した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
private[this] def update
(
derived: => InsertingSetup @@ UnusedKeys,
setup: OParserSetup
): super.Result = {
// 構築中の情報からタグを外し、パーサの動作設定を追加
val insertedSetup: InsertedSetup = derived.unwrap.updated(SetupRecord, setup)
// 再度タグ付けして返す
val result: InsertedSetup @@ UnusedKeys = insertedSetup.wrap
result.pure
}
}
/**
* 構築中の情報が持つパーサの動作設定を更新します(内部)。
*
* @param runCategory 動作設定を持つ値を格納する型を決定するマーカー
* @param applicative 構築中の情報をラップ可能なことを保証する
* @param setupSelector パーサの動作設定が既に存在することを保証する
* @param setupUpdater パーサの動作設定を更新可能なことを保証する
* @tparam UnusedKey パーサへのオプション追加時に使用する幽霊型(動作設定時は未使用)
* @tparam HasSetup 動作設定の型(更新前・更新後で同一)
* @tparam UpdatedCategory 構築中の情報をラップする型
* @return 構築中の情報が持つパーサの動作設定を更新する型クラスインスタンス
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
private final def UpdateSetup[
UnusedKey,
HasSetup <: HList,
UpdatedCategory[_]
](
implicit
runCategory: ResultCategory[UpdatedCategory] @@ Run.type,
applicative: Applicative[UpdatedCategory],
setupSelector: Selector.Aux[
HasSetup,
SetupRecord.T,
OParserSetup
],
setupUpdater: Updater.Aux[
HasSetup,
FieldType[
SetupRecord.T,
OParserSetup
],
HasSetup
]
): Setup.Aux[
HasSetup @@ UnusedKey,
UpdatedCategory[HasSetup @@ UnusedKey]
] = new Setup[HasSetup @@ UnusedKey] {
/**
* パーサの動作設定を更新した後の型です。
*
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override type Result = UpdatedCategory[HasSetup @@ UnusedKey]
/**
* パーサの動作設定を上書きします。
*
* @param derived パーサの動作設定を持つ値
* @param setup 上書きする動作設定
* @return パーサの動作設定を上書きした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def apply
(
derived: => HasSetup @@ UnusedKey,
setup: OParserSetup
): super.Result = this (derived) = _ => setup
/**
* パーサの出力形式を上書きします。
*
* @param derived パーサの動作設定を持つ値
* @param mode 出力形式
* @return 出力形式を上書きした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def renderingMode
(
derived: => HasSetup @@ UnusedKey,
mode: RenderingMode
): super.Result = this (derived) = _.withRenderingMode(mode)
/**
* 未知のオプションをエラー扱いとするかの設定を上書きします。
*
* @param derived パーサの動作設定を持つ値
* @param isError エラー扱いとする場合は`true`、しない場合は`false`
* @return 未知のオプションをエラー扱いとするかの設定を上書きした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def errorOnUnknownArgument
(
derived: => HasSetup @@ UnusedKey,
isError: Boolean
): super.Result = this (derived) = _.withErrorOnUnknownArgument(isError)
/**
* 解析失敗時にコマンドの使用方法を表示するかを上書きします。
*
* @param derived パーサの動作設定を持つ値
* @param isShow `true`を持つ有効値の場合は表示し、それ以外の場合は表示しない
* @tparam UnusedCategory 型パラメータを持ち、値を持たない可能性を表現可能な型
* @return 解析失敗時にコマンドの使用方法を表示するかを上書きした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def showUsageOnError[UnusedCategory[_] : Optional]
(
derived: => HasSetup @@ UnusedKey,
isShow: UnusedCategory[Boolean]
): super.Result = this (derived) = _.withShowUsageOnError(isShow)
/**
* 解析結果のうち正常なメッセージをどう扱うかを上書きします。
*
* @param derived パーサの動作設定を持つ値
* @param display メッセージに対する処理
* @tparam Unused メッセージに対する処理の結果得られる型(最終的に[[scala.Unit]]となり破棄)
* @return 解析結果のうち正常なメッセージをどう扱うかを上書きした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def displayToOut[Unused]
(
derived: => HasSetup @@ UnusedKey,
display: String => Unused
): super.Result = this (derived) = _.withDisplayToOut(display)
/**
* 解析結果のうちエラーメッセージをどう扱うかを上書きします。
*
* @param derived パーサの動作設定を持つ値
* @param display メッセージに対する処理
* @tparam Unused メッセージに対する処理の結果得られる型(最終的に[[scala.Unit]]となり破棄)
* @return 解析結果のうちエラーメッセージをどう扱うかを上書きした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def displayToErr[Unused]
(
derived: => HasSetup @@ UnusedKey,
display: String => Unused
): super.Result = this (derived) = _.withDisplayToErr(display)
/**
* エラー発生時のレポートの処理方法を上書きします。
*
* @param derived パーサの動作設定を持つ値
* @param report レポート処理
* @tparam Unused レポート処理後に得られる型(最終的に[[scala.Unit]]となり破棄)
* @return エラー発生時のレポートの処理方法を上書きした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def reportError[Unused]
(
derived: => HasSetup @@ UnusedKey,
report: String => Unused
): super.Result = this (derived) = _.withReportError(report)
/**
* 警告発生時のレポートの処理方法を上書きします。
*
* @param derived パーサの動作設定を持つ値
* @param report レポート処理
* @tparam Unused レポート処理後に得られる型(最終的に[[scala.Unit]]となり破棄)
* @return 警告発生時のレポートの処理方法を上書きした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def reportWarning[Unused]
(
derived: => HasSetup @@ UnusedKey,
report: String => Unused
): super.Result = this (derived) = _.withReportWarning(report)
/**
* ヘルプおよびバージョン情報表示後にどう終了するかを上書きします。
*
* @param derived パーサの動作設定を持つ値
* @param terminator ヘルプおよびバージョン情報表示後に呼ばれる終了処理
* @tparam UnusedResult 終了処理後に得られる型(最終的に[[scala.Unit]]となり破棄)
* @return ヘルプおよびバージョン情報表示後にどう終了するかを上書きした結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def terminate[UnusedResult]
(
derived: => HasSetup @@ UnusedKey,
terminator: Either[String, Unit] => UnusedResult
): super.Result = this (derived) = _.withTerminate(terminator)
/**
* 構築中の情報が持つパーサの動作設定を更新します。
*
* @param derived パーサの動作設定を持つ値
* @param function パーサの動作設定を更新する処理
* @return 構築中の情報が持つパーサの動作設定を更新した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
private[this] def update
(
derived: => HasSetup @@ UnusedKey,
function: OParserSetup => OParserSetup
): super.Result = {
// 構築中の情報からタグを外す
val updatingSetup: HasSetup = derived.unwrap
// パーサの動作設定を更新する
val updatedSetup: HasSetup = updatingSetup.replace(
SetupRecord,
function(updatingSetup(SetupRecord))
)
// 再度タグ付けして返す
val result: HasSetup @@ UnusedKey = updatedSetup.wrap
result.pure
}
}
/**
* ラップされた型が持つ構築中の情報のパーサ動作設定を設定します(内部)。
*
* @param runCategory 動作設定を持つ値を格納する型を決定するマーカー
* @param bind 平坦化変換が可能なことを保証する
* @param base ラップされた型に対してパーサの動作設定が行えることを保証する
* @tparam InsertingSetup 動作設定の設定対象となる型
* @tparam InsertedSetup 動作設定を設定した後の型
* @tparam InsertedCategory 構築中の情報をラップする型
* @return ラップされた型が持つ構築中の情報に対しパーサ動作設定を設定する型クラスインスタンス
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
private final def CategorySetup[
InsertingSetup,
InsertedSetup,
InsertedCategory[_]
](
implicit
runCategory: ResultCategory[InsertedCategory] @@ Run.type,
bind: Bind[InsertedCategory],
base: Setup.Aux[
InsertingSetup,
InsertedCategory[InsertedSetup]
]
): Setup.Aux[
InsertedCategory[InsertingSetup],
InsertedCategory[InsertedSetup]
] = new Setup[InsertedCategory[InsertingSetup]] {
/**
* ラップされた型に対してパーサの動作設定を追加あるいは更新した後の型です。
*
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override type Result = InsertedCategory[InsertedSetup]
/**
* ラップされた型に対してパーサの動作設定を行います。
*
* @param derived パーサの動作設定を持つ値
* @param setup パーサの動作設定
* @return パーサの動作設定を行った結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def apply
(
derived: => InsertedCategory[InsertingSetup],
setup: OParserSetup
): super.Result = derived >>= (_.setup(setup))
/**
* ラップされた型に対してパーサの出力形式を設定します。
*
* @param derived パーサの動作設定を持つ値
* @param mode 出力形式
* @return パーサの出力形式を設定した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def renderingMode
(
derived: => InsertedCategory[InsertingSetup],
mode: RenderingMode
): super.Result = derived >>= (_.renderingMode(mode))
/**
* ラップされた型に対して未知のオプションをエラー扱いとするか設定します。
*
* @param derived パーサの動作設定を持つ値
* @param isError エラー扱いとする場合は`true`、しない場合は`false`
* @return 未知のオプションをエラー扱いとするか設定した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def errorOnUnknownArgument
(
derived: => InsertedCategory[InsertingSetup],
isError: Boolean
): super.Result = derived >>= (_.errorOnUnknownArgument(isError))
/**
* ラップされた型に対して解析失敗時にコマンドの使用方法を表示するか設定します。
*
* @param derived パーサの動作設定を持つ値
* @param isShow `true`を持つ有効値の場合は表示し、それ以外の場合は表示しない
* @tparam UnusedCategory 型パラメータを持ち、値を持たない可能性を表現可能な型
* @return 解析失敗時にコマンドの使用方法を表示するか設定した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def showUsageOnError[UnusedCategory[_] : Optional]
(
derived: => InsertedCategory[InsertingSetup],
isShow: UnusedCategory[Boolean]
): super.Result = derived >>= (_.showUsageOnError(isShow))
/**
* ラップされた型に対して解析結果のうち正常なメッセージをどう扱うか設定します。
*
* @param derived パーサの動作設定を持つ値
* @param display メッセージに対する処理
* @tparam Unused メッセージに対する処理の結果得られる型(最終的に[[scala.Unit]]となり破棄)
* @return 正常なメッセージの扱いについて設定した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def displayToOut[Unused]
(
derived: => InsertedCategory[InsertingSetup],
display: String => Unused
): super.Result = derived >>= (_.displayToOut(display))
/**
* ラップされた型に対して解析結果のうちエラーメッセージをどう扱うか設定します。
*
* @param derived パーサの動作設定を持つ値
* @param display メッセージに対する処理
* @tparam Unused メッセージに対する処理の結果得られる型(最終的に[[scala.Unit]]となり破棄)
* @return エラーメッセージの扱いについて設定した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def displayToErr[Unused]
(
derived: => InsertedCategory[InsertingSetup],
display: String => Unused
): super.Result = derived >>= (_.displayToErr(display))
/**
* ラップされた型に対してエラー発生時のレポートの処理方法を設定します。
*
* @param derived パーサの動作設定を持つ値
* @param report レポート処理
* @tparam Unused レポート処理後に得られる型(最終的に[[scala.Unit]]となり破棄)
* @return エラー発生時のレポートの処理方法を設定した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def reportError[Unused]
(
derived: => InsertedCategory[InsertingSetup],
report: String => Unused
): super.Result = derived >>= (_.reportError(report))
/**
* ラップされた型に対して警告発生時のレポートの処理方法を設定します。
*
* @param derived パーサの動作設定を持つ値
* @param report レポート処理
* @tparam Unused レポート処理後に得られる型(最終的に[[scala.Unit]]となり破棄)
* @return 警告発生時のレポートの処理方法を設定した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def reportWarning[Unused]
(
derived: => InsertedCategory[InsertingSetup],
report: String => Unused
): super.Result = derived >>= (_.reportWarning(report))
/**
* ラップされた型に対してヘルプおよびバージョン情報表示後にどう終了するかを設定します。
*
* @param derived パーサの動作設定を持つ値
* @param terminator ヘルプおよびバージョン情報表示後に呼ばれる終了処理
* @tparam UnusedResult 終了処理後に得られる型(最終的に[[scala.Unit]]となり破棄)
* @return 終了処理を設定した結果
* @author Kynthus Auoeau
* @since 1.0.0
* @version 1.0.0
*/
override def terminate[UnusedResult]
(
derived: => InsertedCategory[InsertingSetup],
terminator: Either[String, Unit] => UnusedResult
): super.Result = derived >>= (_.terminate(terminator))
}
}