| Dimension | Shared | Only in A | Only in B | Overlap |
|---|---|---|---|---|
| Sections | 0 | 0 | 0 | — |
| Commands | 0 | 0 | 0 | — |
| Section tags | 0 | 0 | 0 | — |
What each file covers
Sections
neither file has anyCommands
neither file has anySection tags
neither file has anyLine diff
imazen/imageflow · .cursor/rules/ffi.mdc
@@ −3 @@
3globs:
4alwaysApply: true
5---
6Imageflow offers a very stable ABI, focused on sending/recieving JSON and byte buffers in conjuction with an endpoint string. There are wrappers in C# (the main one), go, node, elixr, and more. Keeping these wrappers up-to-date with the latest JSON features is difficult, and the nature of the JSON graph structure makes it require simpler API wrappers.
7
8For the HTTP-like endpoint names, see @/imageflow_core/src/context_method.rs
9
10For the FFI ABI, read @/imageflow_abi/src/lib.rs and [imageflow_default.h](mdc:bindings/headers/imageflow_default.h)
11
12
13
imazen/imageflow · .cursor/rules/rust.mdc
@@ +3 @@
3globs:
4alwaysApply: true
5---
6When working on imageflow, we want to preserve comments in the code - ALWAYS - since they help us remember corner cases. Always repeat them back out into the new code. And always load /imageflow_types/src/lib.rs into memory, since we use it in every rust file.
7
8Our primary interfaces users see are the RIAPI (querystring commands) @riapi.mdc and the JSON API @json-api.mdc, both accessed via @ffi.mdc + Imageflow.Net and Imageflow Server.
9
10We want to keep our gitbook in docs/src up to date.
11
12When creating an Err() in imageflow_core, use the nerror!(ErrorKind:*, "format {}", args) macro (format/args optional), which embeds line/file data and creates a FlowError struct.
13We can map other error types to it stringly, via .map_err(|e| nerror!(ErrorKind::InvalidArgument, "Parse error: {}", e))?;
14We add to the artificial error call stack with .map_err(|e| e.at(here!()))?.
15See @errors.rs for the available ErrorKinds.
16
17Example: Err(nerror!(ErrorKind::InvalidOperation, "LibPNG decoder disposed before call to read_frame"))
@@ −3 +3 @@
33 globs:
44 alwaysApply: true
55 ---
6−Imageflow offers a very stable ABI, focused on sending/recieving JSON and byte buffers in conjuction with an endpoint string. There are wrappers in C# (the main one), go, node, elixr, and more. Keeping these wrappers up-to-date with the latest JSON features is difficult, and the nature of the JSON graph structure makes it require simpler API wrappers.
6+When working on imageflow, we want to preserve comments in the code - ALWAYS - since they help us remember corner cases. Always repeat them back out into the new code. And always load /imageflow_types/src/lib.rs into memory, since we use it in every rust file.
77
8−For the HTTP-like endpoint names, see @/imageflow_core/src/context_method.rs
8+Our primary interfaces users see are the RIAPI (querystring commands) @riapi.mdc and the JSON API @json-api.mdc, both accessed via @ffi.mdc + Imageflow.Net and Imageflow Server.
99
10−For the FFI ABI, read @/imageflow_abi/src/lib.rs and [imageflow_default.h](mdc:bindings/headers/imageflow_default.h)
10+We want to keep our gitbook in docs/src up to date.
1111
12+When creating an Err() in imageflow_core, use the nerror!(ErrorKind:*, "format {}", args) macro (format/args optional), which embeds line/file data and creates a FlowError struct.
13+We can map other error types to it stringly, via .map_err(|e| nerror!(ErrorKind::InvalidArgument, "Parse error: {}", e))?;
14+We add to the artificial error call stack with .map_err(|e| e.at(here!()))?.
15+See @errors.rs for the available ErrorKinds.
1216
13−
17+Example: Err(nerror!(ErrorKind::InvalidOperation, "LibPNG decoder disposed before call to read_frame"))
