chore: remove util fn for stdlib equivalent
This commit is contained in:
parent
1230aa1e91
commit
5d7cf3a8a2
|
@ -6,7 +6,6 @@ const Eeprom = @import("backup/eeprom.zig").Eeprom;
|
||||||
const Flash = @import("backup/Flash.zig");
|
const Flash = @import("backup/Flash.zig");
|
||||||
|
|
||||||
const escape = @import("../../util.zig").escape;
|
const escape = @import("../../util.zig").escape;
|
||||||
const span = @import("../../util.zig").span;
|
|
||||||
|
|
||||||
const Needle = struct { str: []const u8, kind: Backup.Kind };
|
const Needle = struct { str: []const u8, kind: Backup.Kind };
|
||||||
const backup_kinds = [6]Needle{
|
const backup_kinds = [6]Needle{
|
||||||
|
@ -195,7 +194,7 @@ pub const Backup = struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn saveName(self: *const Self, allocator: Allocator) ![]const u8 {
|
fn saveName(self: *const Self, allocator: Allocator) ![]const u8 {
|
||||||
const title_str = span(&escape(self.title));
|
const title_str = std.mem.sliceTo(&escape(self.title), 0);
|
||||||
const name = if (title_str.len != 0) title_str else "untitled";
|
const name = if (title_str.len != 0) title_str else "untitled";
|
||||||
|
|
||||||
return try std.mem.concat(allocator, u8, &[_][]const u8{ name, ".sav" });
|
return try std.mem.concat(allocator, u8, &[_][]const u8{ name, ".sav" });
|
||||||
|
|
|
@ -9,8 +9,6 @@ const Arm7tdmi = @import("core/cpu.zig").Arm7tdmi;
|
||||||
const Scheduler = @import("core/scheduler.zig").Scheduler;
|
const Scheduler = @import("core/scheduler.zig").Scheduler;
|
||||||
const FpsTracker = @import("util.zig").FpsTracker;
|
const FpsTracker = @import("util.zig").FpsTracker;
|
||||||
|
|
||||||
const span = @import("util.zig").span;
|
|
||||||
|
|
||||||
const gba_width = @import("core/ppu.zig").width;
|
const gba_width = @import("core/ppu.zig").width;
|
||||||
const gba_height = @import("core/ppu.zig").height;
|
const gba_height = @import("core/ppu.zig").height;
|
||||||
|
|
||||||
|
@ -73,7 +71,7 @@ pub const Gui = struct {
|
||||||
|
|
||||||
return Self{
|
return Self{
|
||||||
.window = window,
|
.window = window,
|
||||||
.title = span(title),
|
.title = std.mem.sliceTo(title, 0),
|
||||||
.ctx = ctx,
|
.ctx = ctx,
|
||||||
.program_id = program_id,
|
.program_id = program_id,
|
||||||
.audio = Audio.init(apu),
|
.audio = Audio.init(apu),
|
||||||
|
|
51
src/util.zig
51
src/util.zig
|
@ -66,57 +66,6 @@ pub fn intToBytes(comptime T: type, value: anytype) [@sizeOf(T)]u8 {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The Title from the GBA Cartridge is an Uppercase ASCII string which is
|
|
||||||
/// null-padded to 12 bytes
|
|
||||||
///
|
|
||||||
/// This function returns a slice of the ASCII string without the null terminator(s)
|
|
||||||
/// (essentially, a proper Zig/Rust/Any modern language String)
|
|
||||||
pub fn span(title: *const [12]u8) []const u8 {
|
|
||||||
const end = std.mem.indexOfScalar(u8, title, '\x00');
|
|
||||||
return title[0 .. end orelse title.len];
|
|
||||||
}
|
|
||||||
|
|
||||||
test "span" {
|
|
||||||
var example: *const [12]u8 = "POKEMON_EMER";
|
|
||||||
try std.testing.expectEqualSlices(u8, "POKEMON_EMER", span(example));
|
|
||||||
|
|
||||||
example = "POKEMON_EME\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "POKEMON_EME", span(example));
|
|
||||||
|
|
||||||
example = "POKEMON_EM\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "POKEMON_EM", span(example));
|
|
||||||
|
|
||||||
example = "POKEMON_E\x00\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "POKEMON_E", span(example));
|
|
||||||
|
|
||||||
example = "POKEMON_\x00\x00\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "POKEMON_", span(example));
|
|
||||||
|
|
||||||
example = "POKEMON\x00\x00\x00\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "POKEMON", span(example));
|
|
||||||
|
|
||||||
example = "POKEMO\x00\x00\x00\x00\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "POKEMO", span(example));
|
|
||||||
|
|
||||||
example = "POKEM\x00\x00\x00\x00\x00\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "POKEM", span(example));
|
|
||||||
|
|
||||||
example = "POKE\x00\x00\x00\x00\x00\x00\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "POKE", span(example));
|
|
||||||
|
|
||||||
example = "POK\x00\x00\x00\x00\x00\x00\x00\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "POK", span(example));
|
|
||||||
|
|
||||||
example = "PO\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "PO", span(example));
|
|
||||||
|
|
||||||
example = "P\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "P", span(example));
|
|
||||||
|
|
||||||
example = "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
|
|
||||||
try std.testing.expectEqualSlices(u8, "", span(example));
|
|
||||||
}
|
|
||||||
|
|
||||||
/// Creates a copy of a title with all Filesystem-invalid characters replaced
|
/// Creates a copy of a title with all Filesystem-invalid characters replaced
|
||||||
///
|
///
|
||||||
/// e.g. POKEPIN R/S to POKEPIN R_S
|
/// e.g. POKEPIN R/S to POKEPIN R_S
|
||||||
|
|
Loading…
Reference in New Issue