@@ -201,235 +201,4 @@ EtabSharp/
201201│ ├── Tables /
202202│ └── System /
203203│
204- └── Exceptions /
205-
206-
207- etabvcs / # Root project
208- ├── Cargo .toml # Workspace configuration
209- ├── package .json # Frontend dependencies
210- ├── vite .config .ts
211- ├── tsconfig .json
212- ├── tailwind .config .js
213- ├── README .md
214- ├── .gitignore
215- │
216- ├── src / # Frontend (React + TypeScript )
217- │ ├── main .tsx
218- │ ├── App .tsx
219- │ ├── components /
220- │ │ ├── ModelViewer /
221- │ │ │ ├── ModelViewer .tsx # 3 D model visualization
222- │ │ │ ├── StoryView .tsx # Story - by - story view
223- │ │ │ ├── MemberList .tsx # Columns / Beams / Walls list
224- │ │ │ └── GridOverlay .tsx # Grid display
225- │ │ ├── VersionControl /
226- │ │ │ ├── CommitHistory .tsx # Git commit history
227- │ │ │ ├── CommitDialog .tsx # Commit changes dialog
228- │ │ │ ├── DiffViewer .tsx # Show model differences
229- │ │ │ └── BranchSelector .tsx # Branch management
230- │ │ ├── DataTables /
231- │ │ │ ├── StoriesTable .tsx # Stories data
232- │ │ │ ├── PointsTable .tsx # Points coordinates
233- │ │ │ ├── MembersTable .tsx # Structural members
234- │ │ │ └── LoadsTable .tsx # Load patterns / cases
235- │ │ ├── Analysis /
236- │ │ │ ├── StatisticsPanel .tsx # Model statistics
237- │ │ │ ├── ValidationResults .tsx # Validation errors
238- │ │ │ └── ComparisonView .tsx # Compare two models
239- │ │ └── Settings /
240- │ │ ├── CliSettings .tsx # EtabSharp CLI path config
241- │ │ └── GitConfig .tsx # Git user settings
242- │ ├── store /
243- │ │ ├── index .ts
244- │ │ ├── modelSlice .ts # Current model state
245- │ │ ├── vcsSlice .ts # Version control state
246- │ │ └── uiSlice .ts # UI state
247- │ ├── hooks /
248- │ │ ├── useModel .ts # Model operations hook
249- │ │ ├── useVcs .ts # VCS operations hook
250- │ │ └── useCli .ts # CLI interaction hook
251- │ └── types /
252- │ ├── model .ts # TypeScript model types
253- │ ├── vcs .ts # VCS types
254- │ └── api .ts # API response types
255- │
256- ├── src - tauri / # Tauri backend (Rust )
257- │ ├── Cargo .toml # Tauri app dependencies
258- │ ├── tauri .conf .json
259- │ ├── build .rs
260- │ ├── icons /
261- │ └── src /
262- │ ├── main .rs # Tauri app entry point
263- │ │
264- │ ├── commands / # Tauri commands (exposed to frontend )
265- │ │ ├── mod .rs
266- │ │ ├── model_commands .rs # Model operations
267- │ │ │ # - import_model (path ) -> Model
268- │ │ │ # - parse_e2k (path ) -> E2KModel
269- │ │ │ # - get_model_stats (id ) -> Statistics
270- │ │ │ # - export_model (id , format ) -> Result
271- │ │ ├── vcs_commands .rs # Version control
272- │ │ │ # - init_repository (path ) -> Result
273- │ │ │ # - commit_model (message , model ) -> Commit
274- │ │ │ # - get_history () -> Vec < Commit >
275- │ │ │ # - checkout (commit_id ) -> Model
276- │ │ │ # - diff (commit1 , commit2 ) -> Diff
277- │ │ │ # - create_branch (name ) -> Result
278- │ │ ├── cli_commands .rs # EtabSharp CLI bridge
279- │ │ │ # - execute_cli (args ) -> CliOutput
280- │ │ │ # - get_cli_version () -> String
281- │ │ │ # - convert_to_json (e2k_path ) -> JsonPath
282- │ │ └── validation_commands .rs # Model validation
283- │ │ # - validate_model (model ) -> ValidationReport
284- │ │ # - check_references () -> Vec < Error >
285- │ │
286- │ ├── services / # Business logic layer
287- │ │ ├── mod .rs
288- │ │ ├── model_service .rs # Model management service
289- │ │ │ # - load_model (path ) -> Result < Model >
290- │ │ │ # - save_model (model ) -> Result < ()>
291- │ │ │ # - calculate_statistics (model ) -> Stats
292- │ │ ├── cli_service .rs # CLI spawning / communication
293- │ │ │ # - spawn_cli (command ) -> ChildProcess
294- │ │ │ # - parse_cli_output (output ) -> Result
295- │ │ │ # - check_cli_available () -> bool
296- │ │ ├── git_service .rs # Git operations (using git2 )
297- │ │ │ # - init_repo (path ) -> Repository
298- │ │ │ # - create_commit (repo , msg ) -> Oid
299- │ │ │ # - get_commits (repo ) -> Vec < Commit >
300- │ │ │ # - checkout_commit (repo , id ) -> Result
301- │ │ │ # - create_diff (old , new ) -> Diff
302- │ │ ├── storage_service .rs # Database operations
303- │ │ │ # - save_snapshot (model ) -> Result < i64 >
304- │ │ │ # - get_snapshot (id ) -> Snapshot
305- │ │ │ # - list_snapshots () -> Vec < Snapshot >
306- │ │ └── diff_service .rs # Model comparison
307- │ │ # - compare_models (m1 , m2 ) -> ModelDiff
308- │ │ # - detect_changes (old , new ) -> ChangeSet
309- │ │
310- │ ├── models / # Data structures
311- │ │ ├── mod .rs
312- │ │ ├── snapshot .rs # ModelSnapshot struct
313- │ │ ├── commit.rs # Commit metadata
314- │ │ ├── diff.rs # Diff structures
315- │ │ └── stats.rs # Statistics structures
316- │ │
317- │ ├── db/ # Database layer
318- │ │ ├── mod.rs
319- │ │ ├── schema.rs # SQLx schema definitions
320- │ │ ├── connection.rs # DB connection pool
321- │ │ └── migrations/ # SQL migration files
322- │ │ ├── 001_init.sql
323- │ │ ├── 002_add_snapshots.sql
324- │ │ └── 003_add_commits.sql
325- │ │
326- │ ├── utils/ # Utility functions
327- │ │ ├── mod.rs
328- │ │ ├── file_utils.rs # File operations
329- │ │ └── error_utils.rs # Error handling
330- │ │
331- │ └── error.rs # Application error types
332- │
333- ├── e2k-parser/ # ⭐ SEPARATE LIBRARY CRATE
334- │ ├── Cargo.toml
335- │ ├── README.md
336- │ ├── LICENSE
337- │ ├── src/
338- │ │ ├── lib.rs # Library entry point
339- │ │ │
340- │ │ ├── parser/ # Parser implementation
341- │ │ │ ├── mod.rs # Main parser orchestrator
342- │ │ │ ├── primitives.rs # Basic parsers (number, string, etc.)
343- │ │ │ ├── sections/ # Section-specific parsers
344- │ │ │ │ ├── mod.rs
345- │ │ │ │ ├── file_info.rs # Parse file metadata
346- │ │ │ │ ├── program_info.rs # Parse program info
347- │ │ │ │ ├── controls.rs # Parse CONTROLS section
348- │ │ │ │ ├── stories.rs # Parse STORIES section
349- │ │ │ │ ├── grids.rs # Parse GRIDS section
350- │ │ │ │ ├── materials.rs # Parse MATERIAL PROPERTIES
351- │ │ │ │ ├── rebar_defs.rs # Parse REBAR DEFINITIONS
352- │ │ │ │ ├── frame_sections.rs # Parse FRAME SECTIONS
353- │ │ │ │ ├── concrete_sections.rs # Parse CONCRETE SECTIONS
354- │ │ │ │ ├── shell_props.rs # Parse SLAB/WALL PROPERTIES
355- │ │ │ │ ├── points.rs # Parse POINT COORDINATES
356- │ │ │ │ ├── lines.rs # Parse LINE CONNECTIVITIES
357- │ │ │ │ ├── areas.rs # Parse AREA CONNECTIVITIES
358- │ │ │ │ ├── assignments.rs # Parse ASSIGNS sections
359- │ │ │ │ ├── loads.rs # Parse LOAD PATTERNS
360- │ │ │ │ ├── load_cases.rs # Parse LOAD CASES
361- │ │ │ │ ├── combinations.rs # Parse LOAD COMBINATIONS
362- │ │ │ │ └── preferences.rs # Parse DESIGN PREFERENCES
363- │ │ │ └── utils.rs # Parser utilities
364- │ │ │
365- │ │ ├── model/ # Domain model
366- │ │ │ ├── mod.rs # E2KModel struct
367- │ │ │ ├── core.rs # Core model structures
368- │ │ │ ├── geometry/ # Geometry structures
369- │ │ │ │ ├── mod.rs
370- │ │ │ │ ├── point.rs # Point struct + methods
371- │ │ │ │ ├── line.rs # Line struct + methods
372- │ │ │ │ ├── area.rs # Area struct + methods
373- │ │ │ │ └── grid.rs # Grid struct
374- │ │ │ ├── structural/ # Structural elements
375- │ │ │ │ ├── mod.rs
376- │ │ │ │ ├── story.rs # Story struct
377- │ │ │ │ ├── material.rs # Material struct
378- │ │ │ │ ├── section.rs # Section structs
379- │ │ │ │ └── property.rs # Properties
380- │ │ │ ├── loading/ # Load structures
381- │ │ │ │ ├── mod.rs
382- │ │ │ │ ├── pattern.rs # LoadPattern
383- │ │ │ │ ├── case.rs # LoadCase
384- │ │ │ │ └── combination.rs # LoadCombination
385- │ │ │ └── design/ # Design data
386- │ │ │ ├── mod.rs
387- │ │ │ └── preferences.rs # Design preferences
388- │ │ │
389- │ │ ├── validation/ # Validation system
390- │ │ │ ├── mod.rs # Validator struct
391- │ │ │ ├── rules/ # Validation rules
392- │ │ │ │ ├── mod.rs
393- │ │ │ │ ├── required_sections.rs # Check required sections
394- │ │ │ │ ├── reference_integrity.rs # Check point/line refs
395- │ │ │ │ └── geometry_validity.rs # Check geometric validity
396- │ │ │ └── report.rs # ValidationReport
397- │ │ │
398- │ │ ├── query/ # Query interface
399- │ │ │ ├── mod.rs # Query builder
400- │ │ │ ├── builder.rs # Fluent query API
401- │ │ │ └── filters.rs # Filter functions
402- │ │ │
403- │ │ ├── export/ # Export functionality
404- │ │ │ ├── mod.rs
405- │ │ │ ├── json.rs # JSON export
406- │ │ │ └── csv.rs # CSV export
407- │ │ │
408- │ │ ├── error.rs # Error types
409- │ │ └── prelude.rs # Common imports
410- │ │
411- │ ├── tests/
412- │ │ ├── integration_tests.rs
413- │ │ ├── parser_tests.rs
414- │ │ ├── validation_tests.rs
415- │ │ └── fixtures/
416- │ │ ├── sample_simple.e2k
417- │ │ ├── sample_hotel.e2k
418- │ │ └── invalid.e2k
419- │ │
420- │ ├── benches/
421- │ │ └── parse_benchmark.rs # Performance benchmarks
422- │ │
423- │ └── examples/
424- │ ├── basic_parse.rs
425- │ ├── validate_model.rs
426- │ └── export_json.rs
427- │
428- ├── EtabExtension.CLI/ # C# CLI (already exists)
429- │ └── ... (your existing C# project)
430- │
431- └── docs/
432- ├── architecture.md
433- ├── api.md
434- └── development.md
435- ```
204+ └── Exceptions /
0 commit comments