@@ -30,13 +30,13 @@ textConstraint :: DemotedTextConstraint -> State D4.Schema ()
30textConstraint (DTEq n) = modify $ \s -> s
30textConstraint (DTEq n) = modify $ \s -> s
31 { _schemaMinLength = pure $ fromIntegral n
31 { _schemaMinLength = pure $ fromIntegral n
32 , _schemaMaxLength = pure $ fromIntegral n }
32 , _schemaMaxLength = pure $ fromIntegral n }
33−textConstraint (DTLt n) = modify $ \s -> s
34− { _schemaMaxLength = pure . fromIntegral $ n + 1 }
35textConstraint (DTLe n) = modify $ \s -> s
33textConstraint (DTLe n) = modify $ \s -> s
36 { _schemaMaxLength = pure . fromIntegral $ n }
34 { _schemaMaxLength = pure . fromIntegral $ n }
37−textConstraint (DTGt n) =
35+textConstraint (DTLt n) =
38 let n' = if n == 0 then 0 else n - 1
36 let n' = if n == 0 then 0 else n - 1
37+ in modify $ \s -> s { _schemaMaxLength = pure . fromIntegral $ n' }
38+textConstraint (DTGt n) = modify $ \s -> s
39− in modify $ \s -> s { _schemaMinLength = pure . fromIntegral $ n' }
39+ { _schemaMinLength = pure . fromIntegral $ n + 1 }
40textConstraint (DTGe n) = modify $ \s -> s
40textConstraint (DTGe n) = modify $ \s -> s
41 { _schemaMinLength = pure . fromIntegral $ n }
41 { _schemaMinLength = pure . fromIntegral $ n }
42textConstraint (DTRegex r) = modify $ \s -> s { _schemaPattern = pure r }
42textConstraint (DTRegex r) = modify $ \s -> s { _schemaPattern = pure r }
@@ -47,19 +47,30 @@ textConstraint (DTEnum ss) =
47numberConstraint :: DemotedNumberConstraint -> State D4.Schema ()
47numberConstraint :: DemotedNumberConstraint -> State D4.Schema ()
48numberConstraint (DNLe n) = modify $ \s -> s
48numberConstraint (DNLe n) = modify $ \s -> s
49 { _schemaMaximum = pure . fromIntegral $ n }
49 { _schemaMaximum = pure . fromIntegral $ n }
50−numberConstraint (DNLt n) = modify $ \s -> s
50+numberConstraint (DNLt n) =
51+ let n' = if n == 0 then 0 else n - 1
51− { _schemaMaximum = pure . fromIntegral $ n + 1 }
52+ in modify $ \s -> s { _schemaMaximum = pure . fromIntegral $ n' }
52numberConstraint (DNGt n) = modify $ \s -> s
53numberConstraint (DNGt n) = modify $ \s -> s
54+ { _schemaMinimum = pure . fromIntegral $ n + 1 }
55+numberConstraint (DNGe n) = modify $ \s -> s
53 { _schemaMinimum = pure . fromIntegral $ n }
56 { _schemaMinimum = pure . fromIntegral $ n }
54−numberConstraint (DNGe n) =
55− let n' = if n == 0 then 0 else n - 1
56− in modify $ \s -> s { _schemaMinimum = pure . fromIntegral $ n' }
57numberConstraint (DNEq n) = modify $ \s -> s
57numberConstraint (DNEq n) = modify $ \s -> s
58 { _schemaMinimum = pure $ fromIntegral n
58 { _schemaMinimum = pure $ fromIntegral n
59 , _schemaMaximum = pure $ fromIntegral n }
59 , _schemaMaximum = pure $ fromIntegral n }
61arrayConstraint :: DemotedArrayConstraint -> State D4.Schema ()
61arrayConstraint :: DemotedArrayConstraint -> State D4.Schema ()
62−arrayConstraint (DAEq _) = pure ()
62+arrayConstraint (DALe n) = modify $ \s -> s
63+ { _schemaMaxItems = pure . fromIntegral $ n }
64+arrayConstraint (DALt n) =
65+ let n' = if n == 0 then 0 else n - 1
66+ in modify $ \s -> s { _schemaMaxItems = pure . fromIntegral $ n' }
67+arrayConstraint (DAGt n) = modify $ \s -> s
68+ { _schemaMinItems = pure . fromIntegral $ n + 1 }
69+arrayConstraint (DAGe n) = modify $ \s -> s
70+ { _schemaMinItems = pure . fromIntegral $ n }
71+arrayConstraint (DAEq n) = modify $ \s -> s
72+ { _schemaMinItems = pure $ fromIntegral n
73+ , _schemaMaxItems = pure $ fromIntegral n }
64toJsonSchema
75toJsonSchema
65 :: forall proxy schema
76 :: forall proxy schema