篩型

    篩型(ふるいがた)🔗

    TYMLでは型に追加の制約を課すことができます

    port: int @value 100..<200
    

    @valueアトリビュート🔗

    数値型であるintuintfloatのいずれかで使用することができます

    setting: int @value 0..<100
    

    0..<100のように範囲を指定することができ、記述方法は以下のとおりです

    • start..<end: start以上end未満
    • start..=end: start以上end以下
    • start..: start以上
    • ..<end: end未満
    • ..=end: end以下

    @lengthアトリビュート🔗

    文字列型stringのUnicode文字数を制限することができます

    setting: string @length 0..<100
    

    数値の範囲指定方法は@valueと同一です

    @u8sizeアトリビュート🔗

    文字列型stringのUTF-8バイト数を制限することができます

    setting: string @u8size 0..<100
    

    数値の範囲指定方法は@valueと同一です

    @regexアトリビュート🔗

    文字列型stringの文字列形式を正規表現で制限することができます

    // 'で囲うとエスケープされません
    setting: string @regex '^\d+$'
    

    複数の条件🔗

    andorを使うことで型の条件を複数記述できます

    // andのほうが優先度が高いです
    // ()で囲うと優先度を変更できます
    setting: string (@length 0..<10 or @length 100..<200) and @regex '^\d+$'