-
Notifications
You must be signed in to change notification settings - Fork 130
VortexExpr VTables #3713
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
VortexExpr VTables #3713
Conversation
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
|
If we're doing this, we should probably revive #3492 as well and just push more of the public API to go through the session object, so the session owns all of the vtables and everything that needs to do dynamic dispatch borrows from it |
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
Signed-off-by: Nicholas Gates <nick@nickgates.com>
CodSpeed Performance ReportMerging #3713 will not alter performanceComparing Summary
|
"Guys, @gatesn is back" |
Signed-off-by: Nicholas Gates <nick@nickgates.com>
|
Or we go in the direction of making ComputeFns extensible, and not expressions... #3453 |
|
|
||
| #[derive(Debug, Clone, Eq, Hash)] | ||
| #[allow(clippy::derived_hash_with_manual_eq)] | ||
| #[derive(Debug, Clone, Hash)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why no Eq?
| use crate::{ExprRef, IntoExpr, VTable}; | ||
|
|
||
| pub type ExprId = ArcRef<str>; | ||
| pub type ExprEncodingRef = ArcRef<dyn ExprEncoding>; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The encoding for an array made a logical sense in my mind, encoding for expression is very forced analogy. We can rename it later

Adds the same vtable machinery as arrays and layouts already use. It uses the "Encoding" naming scheme from arrays and layouts. I don't particularly like it, but it's consistent. Open to renames later.
Further, adds an expression registry to the Vortex session that will be used for deserialization.
Expressions only decide their "options" serialization. So in theory, can support many container formats, not just proto, provided each expression can deserialize their own options format.