Burak
5717f9c249
Partially implement Go's time format ( #130 )
...
* Partially implement Go's time format
* Parse date only values
* Fix leap year handling in `time.diff`
* Disable failing test case
2024-02-07 15:12:34 -08:00
Burak
49bd657a41
Implement builtin time.parse_duration_ns method ( #100 )
...
* Implement builtin `time.parse_duration_ns` method
* Parse durations properly in `test.sleep` method
2024-01-08 02:21:35 -08:00
Burak
d2eb3ecd1f
Implement most of the builtin time module ( #82 )
...
* Implement builtin `time.add_date` method
* Implement builtin `time.clock` method
* Implement builtin `time.date` method
* Implement builtin `time.diff` method
* Implement builtin `time.format` method
* Migrate `time.now_ns` to `chrono`
* Implement builtin `time.parse_ns` method
* Implement builtin `time.parse_rfc3339_ns` method
* Implement builtin `time.weekday` method
* Add conditional `test` module for OPA tests
* Cache result of `time.now_ns`
* Fail in strict mode if timestamp is outside of range
* Add `ensure_i32` util
* Move `diff_between_datetimes` into its own file and include appropriate license
2023-12-31 17:07:39 -08:00
Burak
ad3282caf4
Builtin UUID module ( #68 )
...
* Implement builtin `uuid.parse` method
* Implement builtin `uuid.rfc4122` method
* Parse timestamps for v2 UUIDs
2023-12-23 09:35:20 -08:00
Burak
1fb144b145
Add tests for builtin string::format_int method ( #65 )
2023-12-22 09:31:57 -08:00
Anand Krishnamoorthi
f6140b6be5
More builtins and semantic improvements ( #66 )
...
- base64 builtins
- base64url builtins
- jsonschema builtins
- json.remove builtin
- handle composite index variables
- use dashu_float since rust_decimal has lesser precision
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-12-21 13:34:48 -08:00
Anand Krishnamoorthi
577e1aa8db
More OPA conformance; in-progress: ability to trace interpreter ( #63 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-12-16 17:50:59 -08:00
Anand Krishnamoorthi
ed3492fd7b
Formalize concept of a Number ( #55 )
...
Number is implemented using rust_decimal::Decimal which uses a 96 bit mantissa.
TODO:
a) Support u64, i64 variants
b) Determine desired semantics for floating-point
c) Determine desired big integer length
d) Explore other big int/big float crates
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-12-01 08:45:59 -08:00
Anand Krishnamoorthi
4db2270dcf
More library functions ( #51 )
...
- units.parse, units.parse_bytes
- json.is_valid, json.marshal, json.unmarshal
- yaml.is_valid, yaml.marshal, yaml.unmarshal
- object.subset
- set_diff
* Also print number of errors due to each missing function
* Also lock down fully passing OPA suites
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-22 14:19:23 -08:00
Luong-Minh Nguyen
e838d5af65
Added semver.is_valid and semver.compare ( #49 )
...
* Completed semver.is_valid and semver.compare
* Addressed PR comments
Signed-off-by: Minh Nguyen <luonguyen@microsoft.com >
---------
Signed-off-by: Minh Nguyen <luonguyen@microsoft.com >
Co-authored-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-16 16:05:02 -08:00
Anand Krishnamoorthi
a1d0f8576a
Allow with modifier for builtin and user functions ( #42 )
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-11-12 21:39:59 -08:00
Anand Krishnamoorthi
800e594d52
Arity for builtins ( #28 )
...
Old-style function call
Utility for running opa yaml tests
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-10-24 10:11:50 -07:00
eric-therond
e08d13df53
fix bitwise.and and add tests ( #19 )
...
Signed-off-by: eric-therond <eric.therond.fr@gmail.com >
2023-06-22 11:27:58 -07:00
Anand Krishnamoorthi
cba0af0d3f
json.filter, object.filter, object.get, object.keys, object.remove
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-03-07 21:27:27 +05:30
Anand Krishnamoorthi
3c3cd312fc
More string functions
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi
27c5afd8ee
strings: concat and contains
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi
89e26e37a2
string concat (WIP)
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-03-01 22:13:09 +05:30
Anand Krishnamoorthi
31e1c63281
Tests for aggregates builtins
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
6b87e99fb9
Tests for numbers builtins
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
17257f9f1d
Tests for arrays builtins
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
c4ae2d4cc2
Tests for types functions
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
12c3d26476
Lock down numbers
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
a8a1d4b820
mod function
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
b30fc2599c
Builtin functions for numbers (WIP)
...
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-28 09:38:40 +05:30
Anand Krishnamoorthi
53030c4ada
Implement comparison operators. Formalize semantics.
...
Rename compare.rs to comparison.rs to match OPA documentation of builtins.
Also update loop handling to ensure that the current scope is restored after
each iteration of the loop so as to undo side effects of the iteration.
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-12 22:19:16 -08:00
Ming-Wei Shih
c0972ad2ba
Update license to MIT
...
Signed-off-by: Ming-Wei Shih <mishih@microsoft.com >
2023-02-09 19:40:35 +00:00
Anand Krishnamoorthi
cb0b3a1790
Code from github.com/anakrish/rego-rs
...
Authored by anakrish and mingweishih
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com >
2023-02-09 10:56:54 -08:00