Phase 4 — Platform shells: - calcpad-macos/: SwiftUI two-column editor with Rust FFI bridge (16 files) - calcpad-windows/: iced GUI with Windows 11 Fluent theme (7 files, 13 tests) - calcpad-web/: React 18 + CodeMirror 6 + WASM Worker + PWA (20 files) - calcpad-cli/: clap-based CLI with expression eval, pipe/stdin, JSON/CSV output, and interactive REPL with rustyline history Phase 5 — Engine modules: - formatting/: answer formatting (decimal/scientific/SI notation, thousands separators, currency), line type classification, clipboard values (93 tests) - plugins/: CalcPadPlugin trait, PluginRegistry, Rhai scripting stub (43 tests) - benches/: criterion benchmarks (single-line, 100/500-line sheets, DAG, incremental) - tests/sheet_scenarios.rs: 20 real-world integration tests - tests/proptest_fuzz.rs: 12 property-based fuzz tests 771 tests passing across workspace, 0 failures.
16 lines
424 B
Swift
16 lines
424 B
Swift
import Foundation
|
|
|
|
/// Represents the evaluation result for a single line in the editor.
|
|
struct LineResult: Identifiable, Equatable {
|
|
let id: Int
|
|
let expression: String
|
|
let result: String?
|
|
let isError: Bool
|
|
|
|
/// Line number (1-based) corresponding to this result.
|
|
var lineNumber: Int { id }
|
|
|
|
/// A blank/comment line that produces no result.
|
|
var isEmpty: Bool { result == nil && !isError }
|
|
}
|