2024-08-16 16:33:47 -07:00

36 lines
825 B
Zig

const std = @import("std");
const assert = std.debug.assert;
const c = @import("c.zig").c;
pub const ComparisonResult = enum(c_int) {
less = -1,
equal = 0,
greater = 1,
};
pub const Range = extern struct {
location: c.CFIndex,
length: c.CFIndex,
pub fn init(loc: usize, len: usize) Range {
return @bitCast(c.CFRangeMake(@intCast(loc), @intCast(len)));
}
};
pub const FourCharCode = packed struct(u32) {
d: u8,
c: u8,
b: u8,
a: u8,
pub fn init(v: *const [4]u8) FourCharCode {
return .{ .a = v[0], .b = v[1], .c = v[2], .d = v[3] };
}
/// Converts the ID to a string. The return value is only valid
/// for the lifetime of the self pointer.
pub fn str(self: FourCharCode) [4]u8 {
return .{ self.a, self.b, self.c, self.d };
}
};