TYMLでは型に追加の制約を課すことができます
port: int @value 100..<200
@valueアトリビュート🔗数値型であるint・uint・floatのいずれかで使用することができます
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+$'
andやorを使うことで型の条件を複数記述できます
// andのほうが優先度が高いです
// ()で囲うと優先度を変更できます
setting: string (@length 0..<10 or @length 100..<200) and @regex '^\d+$'