Files
SpacetimeDB/crates/primitives/Cargo.toml
Phoebe Goldman 0a6aa7c5d9 ModuleDef and schema changes to support procedures (#3392)
# Description of Changes

This commit extends various schema and schema-adjacent structures to
describe procedures, a new kind of database function which are allowed
to perform side effects.

This includes extending `RawModuleDefV9` with a way to register
`RawProcedureDefV9`s in the `misc_exports`, preserving compatibility
with modules that predate procedures.

The module validation path is reorganized somewhat to validate various
properties related to procedures while preserving code clarity and
maintainability.

Additionally, the `ArgsTuple` machinery for ser/de-ing reducer arguments
using the argument type as a seed is extended to also support procedure
arguments.

All of this is currently unused.

# API and ABI breaking changes

Additive and backwards-compatible additions to `RawModuleDefV9` and
friends.

# Expected complexity level and risk

2 - some minor complexity in schema validation which may have gotten
borked in a merge at some point.

# Testing

Unsure what tests would be useful, open to suggestions from reviewers.

- [ ] <!-- maybe a test you want to do -->
- [ ] <!-- maybe a test you want a reviewer to do, so they can check it
off when they're satisfied. -->
2025-10-17 17:22:14 +00:00

25 lines
593 B
TOML

[package]
name = "spacetimedb-primitives"
version.workspace = true
edition.workspace = true
license-file = "LICENSE"
description = "Primitives such as TableId and ColumnIndexAttribute"
rust-version.workspace = true
[features]
memory-usage = ["dep:spacetimedb-memory-usage"]
[dependencies]
bitflags.workspace = true
either.workspace = true
enum-as-inner.workspace = true
nohash-hasher.workspace = true
itertools.workspace = true
spacetimedb-memory-usage = { workspace = true, optional = true, default-features = false }
[dev-dependencies]
proptest.workspace = true
[lints]
workspace = true