Expand description
Brick Architecture: Tests ARE the Interface (PROBAR-SPEC-009)
Core abstraction where UI components are defined by test assertions. Brick Architecture: Tests ARE the Interface (PROBAR-SPEC-009)
This module implements the core Brick abstraction where UI components are defined by their test assertions, not by their implementation.
§Design Philosophy
The Brick Architecture inverts the traditional UI/Test relationship:
Traditional: Widget → Tests
Brick: Brick(Assertions) → Widget + TestsA Brick defines:
- Assertions: What must be true (contrast ratio, visibility, latency)
- Budget: Performance envelope (max render time in ms)
- Events: State transitions that trigger assertions
§Zero-Artifact Architecture (PROBAR-SPEC-009-P7)
The following brick types generate all web artifacts from Rust:
WorkerBrick- Web Worker JavaScript and Rust web_sys bindingsEventBrick- DOM event handlersAudioBrick- AudioWorklet processor code
§Popperian Falsification
Each assertion is a falsifiable hypothesis. If ANY assertion fails, the brick is falsified and cannot render.
§Example
ⓘ
use probar::brick::{Brick, BrickAssertion, BrickBudget};
#[derive(Brick)]
#[brick(
html = "div.transcription",
budget_ms = 100,
assertions = [text_visible, contrast_ratio(4.5)]
)]
struct TranscriptionBrick {
text: String,
is_final: bool,
}§References
- Popper, K. (1959). The Logic of Scientific Discovery
- Beizer, B. (1990). Software Testing Techniques
- PROBAR-SPEC-009: Bug Hunting Probador
Re-exports§
pub use audio::AudioBrick;pub use audio::AudioParam;pub use audio::RingBufferConfig;pub use compute::ComputeBrick;pub use compute::ElementwiseOp;pub use compute::ReduceKind;pub use compute::TensorBinding;pub use compute::TensorType;pub use compute::TileOp;pub use compute::TileStrategy;pub use deterministic::BrickHistory;pub use deterministic::BrickState;pub use deterministic::DeterministicBrick;pub use deterministic::DeterministicClock;pub use deterministic::DeterministicRng;pub use deterministic::ExecutionTrace;pub use deterministic::GuardSeverity;pub use deterministic::GuardViolation;pub use deterministic::GuardedBrick;pub use deterministic::InvariantGuard;pub use deterministic::StateValue;pub use distributed::Backend;pub use distributed::BackendSelector;pub use distributed::BrickCoordinator;pub use distributed::BrickDataTracker;pub use distributed::BrickInput;pub use distributed::BrickMessage;pub use distributed::BrickOutput;pub use distributed::DataLocation;pub use distributed::DistributedBrick;pub use distributed::ExecutionMetrics;pub use distributed::MultiBrickExecutor;pub use distributed::SchedulerStats;pub use distributed::Subscription;pub use distributed::TaskSpec;pub use distributed::WorkStealingScheduler;pub use distributed::WorkStealingTask;pub use distributed::WorkerId;pub use distributed::WorkerQueue;pub use distributed::WorkerStats;pub use event::EventBinding;pub use event::EventBrick;pub use event::EventHandler;pub use event::EventType;pub use pipeline::AuditEntry;pub use pipeline::BrickPipeline;pub use pipeline::BrickStage;pub use pipeline::Checkpoint;pub use pipeline::PipelineAuditCollector;pub use pipeline::PipelineContext;pub use pipeline::PipelineData;pub use pipeline::PipelineError;pub use pipeline::PipelineMetadata;pub use pipeline::PipelineResult;pub use pipeline::PrivacyTier;pub use pipeline::StageTrace;pub use pipeline::ValidationLevel;pub use pipeline::ValidationMessage;pub use pipeline::ValidationResult;pub use tui::AnalyzerBrick;pub use tui::CielabColor;pub use tui::CollectorBrick;pub use tui::CollectorError;pub use tui::PanelBrick;pub use tui::PanelId;pub use tui::PanelState;pub use tui::RingBuffer;pub use web_sys_gen::get_base_url;pub use web_sys_gen::BlobUrl;pub use web_sys_gen::CustomEventDispatcher;pub use web_sys_gen::EventDetail;pub use web_sys_gen::FetchClient;pub use web_sys_gen::GeneratedWebSys;pub use web_sys_gen::GenerationMetadata;pub use web_sys_gen::PerformanceTiming;pub use web_sys_gen::WebSysError;pub use web_sys_gen::GENERATION_METADATA;pub use widget::commands_to_gpu_instances;pub use widget::Canvas;pub use widget::Constraints;pub use widget::CornerRadius;pub use widget::DrawCommand;pub use widget::Event;pub use widget::GpuInstance;pub use widget::LayoutResult;pub use widget::LineCap;pub use widget::LineJoin;pub use widget::Modifiers;pub use widget::RecordingCanvas;pub use widget::Rect;pub use widget::RenderMetrics;pub use widget::Size;pub use widget::StrokeStyle;pub use widget::TextStyle;pub use widget::Transform2D;pub use widget::Widget;pub use widget::WidgetColor;pub use widget::WidgetExt;pub use widget::WidgetMouseButton;pub use widget::WidgetPoint;pub use worker::BrickWorkerMessage;pub use worker::BrickWorkerMessageDirection;pub use worker::FieldType;pub use worker::MessageField;pub use worker::WorkerBrick;pub use worker::WorkerTransition;
Modules§
- audio
- AudioBrick: AudioWorklet code generation from brick definitions (PROBAR-SPEC-009-P7)
- compute
- ComputeBrick: WebGPU shader generation from brick definitions (PROBAR-SPEC-009-P8)
- deterministic
- DeterministicBrick: Pure functional brick execution (PROBAR-SPEC-009-P11)
- distributed
- DistributedBrick: Work-stealing and data locality (PROBAR-SPEC-009-P10)
- event
- EventBrick: DOM event handler generation from brick definitions (PROBAR-SPEC-009-P7)
- pipeline
- BrickPipeline: Orchestration for multi-brick workflows (PROBAR-SPEC-009-P9)
- tui
- TUI Brick Traits (PROBAR-SPEC-009-P13)
- web_
sys_ gen - WebSys Code Generation (PROBAR-SPEC-009-P7: PROBAR-WEBSYS-001)
- widget
- Widget Integration: Verify-Measure-Layout-Paint (PROBAR-SPEC-009-P12)
- worker
- WorkerBrick: Web Worker code generation from brick definitions (PROBAR-SPEC-009-P7)
Structs§
- Brick
Budget - Performance budget for a brick.
- Brick
Verification - Result of verifying brick assertions
- Budget
Violation - Budget violation report
Enums§
- Brick
Assertion - Brick assertion that must be verified at runtime.
- Brick
Error - Yuan Gate: Zero-swallow error handling for bricks
- Brick
Phase - Rendering phase for budget tracking
Traits§
- Brick
- Core Brick trait - the foundation of the Brick Architecture.
Type Aliases§
- Brick
Result - Result type for brick operations