document.pony

use json = "../../../json"

interface val DocumentFilter is SendData
  fun val language(): (String | None)
  fun val scheme(): (String | None)
  fun val pattern(): (String | None)

  fun val get_json(): json.Item =>
    let props = Array[(String, json.Item)]
    match language()
    | let str: String =>
      props.push(("language", str))
    end
    match scheme()
    | let str: String =>
      props.push(("scheme", str))
    end
    match pattern()
    | let str: String =>
      props.push(("scheme", str))
    end
    json.Object(props)

type DocumentSelector is Seq[DocumentFilter] val