mirror of
https://github.com/ziex-dev/ziex.git
synced 2026-07-20 18:49:33 -06:00
56 lines
1.5 KiB
Zig
56 lines
1.5 KiB
Zig
/// Test: Components with error union return type (!Component)
|
|
pub fn Page(allocator: zx.Allocator) zx.Component {
|
|
var _zx = @import("zx").x.allocInit(allocator);
|
|
return _zx.ele(
|
|
.main,
|
|
.{
|
|
.allocator = allocator,
|
|
.children = &.{
|
|
_zx.cmp(
|
|
Fallible,
|
|
.{ .name = "Fallible" },
|
|
.{ .success = true },
|
|
),
|
|
_zx.cmp(
|
|
FallibleCtx,
|
|
.{ .name = "FallibleCtx" },
|
|
.{ .success = true },
|
|
),
|
|
},
|
|
},
|
|
);
|
|
}
|
|
|
|
/// Error union with allocator signature
|
|
const FallibleProps = struct { success: bool };
|
|
pub fn Fallible(allocator: zx.Allocator, props: FallibleProps) !zx.Component {
|
|
if (!props.success) return error.TestError;
|
|
var _zx = @import("zx").x.allocInit(allocator);
|
|
return _zx.ele(
|
|
.div,
|
|
.{
|
|
.allocator = allocator,
|
|
.children = &.{
|
|
_zx.txt("Success"),
|
|
},
|
|
},
|
|
);
|
|
}
|
|
|
|
/// Error union with ComponentCtx signature
|
|
pub fn FallibleCtx(ctx: *zx.ComponentCtx(FallibleProps)) !zx.Component {
|
|
if (!ctx.props.success) return error.TestError;
|
|
var _zx = @import("zx").x.allocInit(ctx.allocator);
|
|
return _zx.ele(
|
|
.div,
|
|
.{
|
|
.allocator = ctx.allocator,
|
|
.children = &.{
|
|
_zx.txt("Ctx Success"),
|
|
},
|
|
},
|
|
);
|
|
}
|
|
|
|
const zx = @import("zx");
|