Skip to content

feat(server): add CrudInfo, CrudInterceptor trait, and CrudInterceptorAdapter#120

Merged
ds1sqe merged 2 commits intomasterfrom
type_bridge-crud
Mar 4, 2026
Merged

feat(server): add CrudInfo, CrudInterceptor trait, and CrudInterceptorAdapter#120
ds1sqe merged 2 commits intomasterfrom
type_bridge-crud

Conversation

@ds1sqe
Copy link
Copy Markdown
Owner

@ds1sqe ds1sqe commented Mar 4, 2026

Implement CRUD-aware interceptor layer for the Rust server:

  • CrudInfo struct with CrudOperation enum, TypeKind enum, and
    extract_crud_info() that analyzes Vec to extract operation
    type, target type name/kind, attribute names, and IID lookups
  • CrudInterceptor trait with should_intercept(), on_crud_request(),
    and on_crud_response() hooks that receive semantic CRUD context
  • CrudInterceptorAdapter bridges CrudInterceptor into the existing
    Interceptor chain using take+put-back pattern for borrow safety
  • Added crud_info: Option field to RequestContext
  • Added PipelineBuilder::with_crud_interceptor() convenience method
  • 100% line coverage on all new code (35 unit tests)

ds1sqe added 2 commits March 4, 2026 18:33
…rAdapter

Implement CRUD-aware interceptor layer for the Rust server:

- CrudInfo struct with CrudOperation enum, TypeKind enum, and
  extract_crud_info() that analyzes Vec<Clause> to extract operation
  type, target type name/kind, attribute names, and IID lookups
- CrudInterceptor trait with should_intercept(), on_crud_request(),
  and on_crud_response() hooks that receive semantic CRUD context
- CrudInterceptorAdapter bridges CrudInterceptor into the existing
  Interceptor chain using take+put-back pattern for borrow safety
- Added crud_info: Option<CrudInfo> field to RequestContext
- Added PipelineBuilder::with_crud_interceptor() convenience method
- 100% line coverage on all new code (35 unit tests)
@ds1sqe ds1sqe merged commit ce505a7 into master Mar 4, 2026
20 checks passed
@ds1sqe ds1sqe deleted the type_bridge-crud branch March 4, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant