Anand Balakrishnan
50d5a0a78a
feat!: make interpolation method explicit
...
All methods that need to perform interpolation of some sort need an
explicit interpolation method. In Rust, this manifests as a generic
parameter, while in Python, this is a string parameter.
2023-10-04 14:42:51 -07:00
Anand Balakrishnan
475d32c533
refactor!(argus-core): update find_intersection method
...
Don't separate the intersection finding code into a different trait, as
it can be bundled with interpolation method.
2023-09-07 13:28:30 -07:00
Anand Balakrishnan
73921db5f9
chore: run linter and fix formatting
2023-08-30 16:02:03 -07:00
Anand Balakrishnan
c916db3853
feat(argus-semantics): complete boolean semantics
2023-08-30 12:46:52 -07:00
Anand Balakrishnan
28a79cb88c
refactor!(argus-core): remove unnecessary traits and Copy constraints
2023-08-29 18:16:10 -07:00
Anand Balakrishnan
4084bb738b
refactor(argus-core): create explicit signal and and or methods
2023-08-28 13:01:08 -07:00
Anand Balakrishnan
87afc11b90
refactor~(core): use traits and structs for interpolation
...
We have to now pass the interpolation method as a generic argument to methods.
2023-06-07 09:57:56 -04:00
Anand Balakrishnan
1c79847a77
feat!(core): Use new AST structure
...
Derive Expr methods using a derive proc-macro. These macros are present in
the `argus-derive` crate, but the traits are defined in `argus-core`
2023-06-06 10:46:27 -04:00
Anand Balakrishnan
70c5a50d22
feat(core): add shift left/right operators to Signal
2023-05-23 13:12:22 -07:00
Anand Balakrishnan
299e572186
docs(core): add documentation for all public API members
2023-05-05 14:33:19 -07:00
Anand Balakrishnan
e22410eea8
feat(core): minor additions to the API
2023-04-16 18:41:21 -07:00
Anand Balakrishnan
a3d406f2b3
feat(core): add an AnySignal trait for trait objects and downcasting of signals
2023-04-16 17:16:10 -07:00
Anand Balakrishnan
4431b79bcd
feat!(core): Change Signal to be a sumtype
...
We want to be able to reason about if a signal is empty, constant, or sampled
at compile time without using any trait objects. Moreover, the core Argus
library shouldn't care about how it deals with interfacing with other languages
like Python. Thus, we remove the need for having an `AnySignal` type and what
not.
2023-04-14 10:53:38 -07:00
Anand Balakrishnan
b517043d0e
feat(core): Add casting and correct subtraction/cmp
2023-04-04 09:57:20 -07:00
Anand Balakrishnan
7c8c833469
test: add proptest arbitrary as a feature
2023-04-04 09:56:19 -07:00
Anand Balakrishnan
02070c1f5a
feat: error for invalid operations on signals
2023-03-23 15:37:02 -07:00
Anand Balakrishnan
989da9ac92
feat: add enum for supported signal types
2023-03-23 14:33:46 -07:00
Anand Balakrishnan
a6dc175c8a
test: add tests for signal operation sugar
...
TODO: Some tests overflow, so we need to fix that.
2023-03-23 14:02:56 -07:00
Anand Balakrishnan
c6a05ef5b4
feat: add syntactic sugar for signal operations
2023-03-22 19:06:23 -07:00
Anand Balakrishnan
978c4531c7
test: minor cases for testing
2023-03-22 18:14:35 -07:00
Anand Balakrishnan
ad4d85ec3d
chore: run rustfmt
2023-03-22 14:57:27 -07:00
Anand Balakrishnan
00a1c32fc1
test: add tests for signals
2023-03-22 14:56:56 -07:00
Anand Balakrishnan
22d19154af
feat: add general signal types
2023-03-22 13:40:13 -07:00