Scopt для сложных типов

#scala #scopt

#scala #scopt

Вопрос:

 import scopt.Read.stringRead._
case class Config(
    kwargs: Map[String, Map[String, List[String]]] = Map()
)

  val parser: OptionParser[Config] = new scopt.OptionParser[Config]("test") {
    head("Test Server", "v1")
   
    opt[Map[String, Map[String, List[String]]]]("kwargs")
      .valueName("k1=v1,k2=v2...")
      .action((x, c) => c.copy(kwargs = x))
      .text("other arguments")

  

Каким будет имя значения и текст для него?
k1 = v1, k2 = v2… допустимо для отображения строки.

 
       .valueName(???)
          .action((x, c) => ??)
          .text("other arguments")

  

Комментарии:

1. Вы хотите добавить все значения как один параметр или как-то добавить их? Потому что это влияет на то, нужно ли вам каким-то образом обновлять map с каждым параметром или вам нужно создать пользовательский Read экземпляр.

2. @MateuszKubuszok все из них