oh hey it's been a while
This commit is contained in:
		
							parent
							
								
									ce94208d0c
								
							
						
					
					
						commit
						0bcf15e1f7
					
				|  | @ -0,0 +1,97 @@ | |||
| const std = @import("std"); | ||||
| 
 | ||||
| // Although this function looks imperative, note that its job is to | ||||
| // declaratively construct a build graph that will be executed by an external | ||||
| // runner. | ||||
| pub fn build(b: *std.Build) void { | ||||
|     // Standard target options allows the person running `zig build` to choose | ||||
|     // what target to build for. Here we do not override the defaults, which | ||||
|     // means any target is allowed, and the default is native. Other options | ||||
|     // for restricting supported target set are available. | ||||
|     const target = b.standardTargetOptions(.{}); | ||||
| 
 | ||||
|     // Standard optimization options allow the person running `zig build` to select | ||||
|     // between Debug, ReleaseSafe, ReleaseFast, and ReleaseSmall. Here we do not | ||||
|     // set a preferred release mode, allowing the user to decide how to optimize. | ||||
|     const optimize = b.standardOptimizeOption(.{}); | ||||
| 
 | ||||
|     const lib = b.addStaticLibrary(.{ | ||||
|         .name = "proxy-print", | ||||
|         // In this case the main source file is merely a path, however, in more | ||||
|         // complicated build scripts, this could be a generated file. | ||||
|         .root_source_file = b.path("src/root.zig"), | ||||
|         .target = target, | ||||
|         .optimize = optimize, | ||||
|     }); | ||||
| 
 | ||||
|     // This declares intent for the library to be installed into the standard | ||||
|     // location when the user invokes the "install" step (the default step when | ||||
|     // running `zig build`). | ||||
|     b.installArtifact(lib); | ||||
| 
 | ||||
|     const exe = b.addExecutable(.{ | ||||
|         .name = "proxy-print", | ||||
|         .root_source_file = b.path("src/main.zig"), | ||||
|         .target = target, | ||||
|         .optimize = optimize, | ||||
|     }); | ||||
| 
 | ||||
|     // This declares intent for the executable to be installed into the | ||||
|     // standard location when the user invokes the "install" step (the default | ||||
|     // step when running `zig build`). | ||||
|     b.installArtifact(exe); | ||||
| 
 | ||||
|     // This *creates* a Run step in the build graph, to be executed when another | ||||
|     // step is evaluated that depends on it. The next line below will establish | ||||
|     // such a dependency. | ||||
|     const run_cmd = b.addRunArtifact(exe); | ||||
|     const msgpack = b.dependency("zig-msgpack", .{ | ||||
|     .target = target, | ||||
|     .optimize = optimize, | ||||
| }); | ||||
| 
 | ||||
|     exe.root_module.addImport("msgpack", msgpack.module("msgpack")); | ||||
| 
 | ||||
|     // By making the run step depend on the install step, it will be run from the | ||||
|     // installation directory rather than directly from within the cache directory. | ||||
|     // This is not necessary, however, if the application depends on other installed | ||||
|     // files, this ensures they will be present and in the expected location. | ||||
|     run_cmd.step.dependOn(b.getInstallStep()); | ||||
| 
 | ||||
|     // This allows the user to pass arguments to the application in the build | ||||
|     // command itself, like this: `zig build run -- arg1 arg2 etc` | ||||
|     if (b.args) |args| { | ||||
|         run_cmd.addArgs(args); | ||||
|     } | ||||
| 
 | ||||
|     // This creates a build step. It will be visible in the `zig build --help` menu, | ||||
|     // and can be selected like this: `zig build run` | ||||
|     // This will evaluate the `run` step rather than the default, which is "install". | ||||
|     const run_step = b.step("run", "Run the app"); | ||||
|     run_step.dependOn(&run_cmd.step); | ||||
| 
 | ||||
|     // Creates a step for unit testing. This only builds the test executable | ||||
|     // but does not run it. | ||||
|     const lib_unit_tests = b.addTest(.{ | ||||
|         .root_source_file = b.path("src/root.zig"), | ||||
|         .target = target, | ||||
|         .optimize = optimize, | ||||
|     }); | ||||
| 
 | ||||
|     const run_lib_unit_tests = b.addRunArtifact(lib_unit_tests); | ||||
| 
 | ||||
|     const exe_unit_tests = b.addTest(.{ | ||||
|         .root_source_file = b.path("src/main.zig"), | ||||
|         .target = target, | ||||
|         .optimize = optimize, | ||||
|     }); | ||||
| 
 | ||||
|     const run_exe_unit_tests = b.addRunArtifact(exe_unit_tests); | ||||
| 
 | ||||
|     // Similar to creating the run step earlier, this exposes a `test` step to | ||||
|     // the `zig build --help` menu, providing a way for the user to request | ||||
|     // running the unit tests. | ||||
|     const test_step = b.step("test", "Run unit tests"); | ||||
|     test_step.dependOn(&run_lib_unit_tests.step); | ||||
|     test_step.dependOn(&run_exe_unit_tests.step); | ||||
| } | ||||
|  | @ -0,0 +1,40 @@ | |||
| .{ | ||||
|     .name = "proxy-print", | ||||
|     // This is a [Semantic Version](https://semver.org/). | ||||
|     // In a future version of Zig it will be used for package deduplication. | ||||
|     .version = "0.0.0", | ||||
| 
 | ||||
|     // This field is optional. | ||||
|     // This is currently advisory only; Zig does not yet do anything | ||||
|     // with this value. | ||||
|     //.minimum_zig_version = "0.11.0", | ||||
| 
 | ||||
|     // This field is optional. | ||||
|     // Each dependency must either provide a `url` and `hash`, or a `path`. | ||||
|     // `zig build --fetch` can be used to fetch all dependencies of a package, recursively. | ||||
|     // Once all dependencies are fetched, `zig build` no longer requires | ||||
|     // internet connectivity. | ||||
|     .dependencies = .{ | ||||
|         .@"zig-msgpack" = .{ | ||||
|             .url = "https://github.com/zigcc/zig-msgpack/archive/main.tar.gz", | ||||
|             .hash = "1220e4669d29190ac809cd3a7726c20b6b49ea7425b7b89cab16d4dc3172016982bc", | ||||
|         }, | ||||
|         .clap = .{ | ||||
|             .url = "https://github.com/Hejsil/zig-clap/archive/refs/tags/0.8.0.tar.gz", | ||||
|             .hash = "1220949d4e88864579067b6d4cdad6476c6176f27e782782c2c39b7f2c4817a10efb", | ||||
|         }, | ||||
|     }, | ||||
|     .paths = .{ | ||||
|         // This makes *all* files, recursively, included in this package. It is generally | ||||
|         // better to explicitly list the files and directories instead, to insure that | ||||
|         // fetching from tarballs, file system paths, and version control all result | ||||
|         // in the same contents hash. | ||||
|         "", | ||||
|         // For example... | ||||
|         //"build.zig", | ||||
|         //"build.zig.zon", | ||||
|         //"src", | ||||
|         //"LICENSE", | ||||
|         //"README.md", | ||||
|     }, | ||||
| } | ||||
|  | @ -0,0 +1,120 @@ | |||
| { | ||||
|     // object:                 ?[]const u8,//string | ||||
|     // id:                     ?[]const u8,//string | ||||
|     // oracle_id:              ?[]const u8,//string | ||||
|     // multiverse_ids:               ?[]u32,//array of int | ||||
|     // mtgo_id:                        ?u32,//int | ||||
|     // mtgo_foil_id:                   ?u32,//int | ||||
|     // tcgplayer_id:                   ?u32,//int | ||||
|     // cardmarket_id:                  ?u32,//int | ||||
|     name:                   ?[]const u8,//string | ||||
|     // lang:                   ?[]const u8,//string | ||||
|     // released_at:            ?[]const u8,//string | ||||
|     // uri:                    ?[]const u8,//string | ||||
|     // scryfall_uri:           ?[]const u8,//string | ||||
|     // layout:                 ?[]const u8,//string | ||||
|     // highres_image:                ?bool,//bool | ||||
|     // image_status:           ?[]const u8,//string | ||||
|     // image_uris:                ?ImgList,//obj (strings) | ||||
|     mana_cost:              ?[]const u8 = "",//string | ||||
|     cmc:                            ?f32,//technically a float? but I think we can always cast safely EDIT: NOPE | ||||
|     type_line:              ?[]const u8,//string | ||||
|     oracle_text:            ?[]const u8 = "",//string | ||||
|     // colors:                 json.Value,//?[]const u8,//array of Chars | ||||
|     color_identity:         json.Value,//?[]const u8,//array of Chars | ||||
|     keywords:             ?[][]const u8,//array of Strings | ||||
|     // legalities:             ?Legalities,//obj (strings) | ||||
|     // games:                ?[][]const u8,//array of Strings | ||||
|     // reserved:                     ?bool,//bool | ||||
|     // foil:                         ?bool,//bool | ||||
|     // nonfoil:                      ?bool,//bool | ||||
|     // finishes:             ?[][]const u8,//array of Strings | ||||
|     // oversized:                    ?bool,//bool | ||||
|     // promo:                        ?bool,//bool | ||||
|     // reprint:                      ?bool,//bool | ||||
|     // variation:                    ?bool,//bool | ||||
|     // set_id:                 ?[]const u8,//string | ||||
|     // set:                    ?[]const u8,//string | ||||
|     // set_name:               ?[]const u8,//string | ||||
|     // set_type:               ?[]const u8,//string | ||||
|     // set_uri:                ?[]const u8,//string | ||||
|     // set_search_uri:         ?[]const u8,//string | ||||
|     // scryfall_set_uri:       ?[]const u8,//string | ||||
|     // rulings_uri:            ?[]const u8,//string | ||||
|     // prints_search_uri:      ?[]const u8,//string | ||||
|     // collector_number:       ?[]const u8,//string | ||||
|     // digital:                      ?bool,//bool | ||||
|     // rarity:                 ?[]const u8,//string | ||||
|     // flavor_text:            ?[]const u8,//string | ||||
|     // card_back_id:           ?[]const u8,//string | ||||
|     // artist:                 ?[]const u8,//string | ||||
|     // artist_ids:           ?[][]const u8,//string | ||||
|     // illustration_id:        ?[]const u8,//string | ||||
|     // border_color:           ?[]const u8,//string | ||||
|     // frame:                  ?[]const u8,//string | ||||
|     // full_art:                     ?bool,//bool | ||||
|     // textless:                     ?bool,//bool | ||||
|     // booster:                      ?bool,//bool | ||||
|     // story_spotlight:              ?bool,//bool | ||||
|     // edhrec_rank:                    ?u32,//int | ||||
|     // prices:                     ?Prices,//obj (floats stored as strings) | ||||
|     // related_uris:         json.Value,//?RelatedUris,//obj (strings) | ||||
|     // purchase_uris:        json.Value,//?PurchaseUris,//obj (strings) | ||||
| } | ||||
| 
 | ||||
| const PurchaseUris = struct { | ||||
|         tcgplayer:          ?[]const u8,//string | ||||
|         cardmarket:         ?[]const u8,//string | ||||
|         cardhoarder:        ?[]const u8,//string | ||||
| }; | ||||
| 
 | ||||
| const Prices = struct { | ||||
|     usd:        ?[]const u8,//string? but technically a float | ||||
|     usd_foil:   ?[]const u8,//same | ||||
|     usd_etched: ?[]const u8,//same | ||||
|     eur:        ?[]const u8,//same | ||||
|     eur_foil:   ?[]const u8,//same | ||||
|     tix:        ?[]const u8,//same | ||||
| }; | ||||
| 
 | ||||
| const RelatedUris = struct { | ||||
|     gatherer:                       ?[]const u8,//string | ||||
|     tcgplayer_infinite_articles:    ?[]const u8,//string | ||||
|     tcgplayer_infinite_decks:       ?[]const u8,//string | ||||
|     edhrec:                         ?[]const u8,//string | ||||
| }; | ||||
| 
 | ||||
| const Legalities = struct { | ||||
|         standard:   ?[]const u8,//string | ||||
|         future:     ?[]const u8,//string | ||||
|         historic:   ?[]const u8,//string | ||||
|         timeless:   ?[]const u8,//string | ||||
|         gladiator:  ?[]const u8,//string | ||||
|         pioneer:    ?[]const u8,//string | ||||
|         explorer:   ?[]const u8,//string | ||||
|         modern:     ?[]const u8,//string | ||||
|         legacy:     ?[]const u8,//string | ||||
|         pauper:     ?[]const u8,//string | ||||
|         vintage:    ?[]const u8,//string | ||||
|         penny:      ?[]const u8,//string | ||||
|         commander:  ?[]const u8,//string | ||||
|         oathbreaker:?[]const u8,//string | ||||
|         standardbrawl:?[]const u8,//string | ||||
|         brawl:      ?[]const u8,//string | ||||
|         alchemy:    ?[]const u8,//string | ||||
|         paupercommander:?[]const u8,//string | ||||
|         duel:       ?[]const u8,//string | ||||
|         oldschool:  ?[]const u8,//string | ||||
|         premodern:  ?[]const u8,//string | ||||
|         predh:      ?[]const u8,//string | ||||
| }; | ||||
| 
 | ||||
| const ImgList = struct { | ||||
|     small:          ?[]const u8,//string | ||||
|     normal:         ?[]const u8,//string | ||||
|     large:          ?[]const u8,//string | ||||
|     png:            ?[]const u8,//string | ||||
|     art_crop:       ?[]const u8,//string | ||||
|     border_crop:    ?[]const u8,//string | ||||
| }; | ||||
| 
 | ||||
|  | @ -0,0 +1,449 @@ | |||
| ``` | ||||
| | Abrupt Decay {B}{G} (Instant)  | Anointed Peacekeeper {2}{W}    | Archon of Emeria {2}{W}         | ||||
| | >> This spell can't be         | (Creature — Human Cleric)      | (Creature — Archon) >>          | ||||
| | countered. Destroy target      | >> Vigilance As Anointed       | Flying Each player can't cast   | ||||
| | nonland permanent with mana    | Peacekeeper enters the         | more than one spell each        | ||||
| | value 3 or less.               | battlefield, look at an        | turn. Nonbasic lands your       | ||||
| |                                | opponent's hand, then choose   | opponents control enter the     | ||||
| |                                | any card name. Spells your     | battlefield tapped.             | ||||
| |                                | opponents cast with the        |                                 | ||||
| |                                | chosen name cost {2} more to   |                                 | ||||
| |                                | cast. Activated abilities of   |                                 | ||||
| |                                | sources with the chosen name   |                                 | ||||
| |                                | cost {2} more to activate      |                                 | ||||
| |                                | unless they're mana            |                                 | ||||
| |                                | abilities.                     |                                 | ||||
| 
 | ||||
| | Arid Mesa (Land) >> {T}, Pay   | Ayara's Oathsworn {1}{B}       | Badlands (Land — Swamp          | ||||
| | 1 life, Sacrifice Arid Mesa:   | (Creature — Human Knight)      | Mountain) >> ({T}: Add {B} or   | ||||
| | Search your library for a      | >> Menace Whenever Ayara's     | {R}.)                           | ||||
| | Mountain or Plains card, put   | Oathsworn deals combat damage  |                                 | ||||
| | it onto the battlefield, then  | to a player, if it has fewer   |                                 | ||||
| | shuffle.                       | than four +1/+1 counters on    |                                 | ||||
| |                                | it, put a +1/+1 counter on     |                                 | ||||
| |                                | it. Then if it has exactly     |                                 | ||||
| |                                | four +1/+1 counters on it,     |                                 | ||||
| |                                | search your library for a      |                                 | ||||
| |                                | card, put it into your hand,   |                                 | ||||
| |                                | then shuffle.                  |                                 | ||||
| 
 | ||||
| | Bayou (Land — Swamp Forest)    | Birds of Paradise {G}          | Bloodstained Mire (Land) >>     | ||||
| | >> ({T}: Add {B} or {G}.)      | (Creature — Bird) >> Flying    | {T}, Pay 1 life, Sacrifice      | ||||
| |                                | {T}: Add one mana of any       | Bloodstained Mire: Search       | ||||
| |                                | color.                         | your library for a Swamp or     | ||||
| |                                |                                | Mountain card, put it onto      | ||||
| |                                |                                | the battlefield, then           | ||||
| |                                |                                | shuffle.                        | ||||
| 
 | ||||
| | Boseiju, Who Endures           | Broadside Bombardiers {2}{R}   | Cankerbloom {1}{G} (Creature    | ||||
| | (Legendary Land) >> {T}: Add   | (Creature — Goblin Pirate)     | — Phyrexian Fungus) >> {1},     | ||||
| | {G}. Channel — {1}{G},         | >> Menace, haste Boast —       | Sacrifice Cankerbloom: Choose   | ||||
| | Discard Boseiju, Who Endures:  | Sacrifice another creature or  | one — • Destroy target          | ||||
| | Destroy target artifact,       | artifact: Broadside            | artifact. • Destroy target      | ||||
| | enchantment, or nonbasic land  | Bombardiers deals damage       | enchantment. • Proliferate.     | ||||
| | an opponent controls. That     | equal to 2 plus the            | (Choose any number of           | ||||
| | player may search their        | sacrificed permanent's mana    | permanents and/or players,      | ||||
| | library for a land card with   | value to any target.           | then give each another          | ||||
| | a basic land type, put it      | (Activate only if this         | counter of each kind already    | ||||
| | onto the battlefield, then     | creature attacked this turn    | there.)                         | ||||
| | shuffle. This ability costs    | and only once each turn.)      |                                 | ||||
| | {1} less to activate for each  |                                |                                 | ||||
| | legendary creature you         |                                |                                 | ||||
| | control.                       |                                |                                 | ||||
| 
 | ||||
| | Caves of Chaos Adventurer      | Chrome Mox {0} (Artifact) >>   | City of Brass (Land) >>         | ||||
| | {3}{R} (Creature — Human       | Imprint — When Chrome Mox      | Whenever City of Brass          | ||||
| | Barbarian) >> Trample When     | enters the battlefield, you    | becomes tapped, it deals 1      | ||||
| | Caves of Chaos Adventurer      | may exile a nonartifact,       | damage to you. {T}: Add one     | ||||
| | enters the battlefield, you    | nonland card from your hand.   | mana of any color.              | ||||
| | take the initiative. Whenever  | {T}: Add one mana of any of    |                                 | ||||
| | Caves of Chaos Adventurer      | the exiled card's colors.      |                                 | ||||
| | attacks, exile the top card    |                                |                                 | ||||
| | of your library. If you've     |                                |                                 | ||||
| | completed a dungeon, you may   |                                |                                 | ||||
| | play that card this turn       |                                |                                 | ||||
| | without paying its mana cost.  |                                |                                 | ||||
| | Otherwise, you may play that   |                                |                                 | ||||
| | card this turn.                |                                |                                 | ||||
| 
 | ||||
| | Comet, Stellar Pup {2}{R}{W}   | Dark Confidant {1}{B}          | Deathrite Shaman {B/G}          | ||||
| | (Legendary Planeswalker —      | (Creature — Human Wizard)      | (Creature — Elf Shaman) >>      | ||||
| | Comet) >> 0: Roll a six-sided  | >> At the beginning of your    | {T}: Exile target land card     | ||||
| | die. 1 or 2 — [+2], then       | upkeep, reveal the top card    | from a graveyard. Add one       | ||||
| | create two 1/1 green Squirrel  | of your library and put that   | mana of any color. {B}, {T}:    | ||||
| | creature tokens. They gain     | card into your hand. You lose  | Exile target instant or         | ||||
| | haste until end of turn. 3     | life equal to its mana value.  | sorcery card from a             | ||||
| | — [−1], then return a          |                                | graveyard. Each opponent        | ||||
| | card with mana value 2 or      |                                | loses 2 life. {G}, {T}: Exile   | ||||
| | less from your graveyard to    |                                | target creature card from a     | ||||
| | your hand. 4 or 5 — Comet,     |                                | graveyard. You gain 2 life.     | ||||
| | Stellar Pup deals damage       |                                |                                 | ||||
| | equal to the number of         |                                |                                 | ||||
| | loyalty counters on him to a   |                                |                                 | ||||
| | creature or player, then       |                                |                                 | ||||
| | [−2]. 6 — [+1], and you        |                                |                                 | ||||
| | may activate Comet, Stellar    |                                |                                 | ||||
| | Pup's loyalty ability two      |                                |                                 | ||||
| | more times this turn.          |                                |                                 | ||||
| 
 | ||||
| | Duress {B} (Sorcery) >>        | Eladamri's Call {G}{W}         | Elvish Spirit Guide {2}{G}      | ||||
| | Target opponent reveals their  | (Instant) >> Search your       | (Creature — Elf Spirit) >>      | ||||
| | hand. You choose a             | library for a creature card,   | Exile Elvish Spirit Guide       | ||||
| | noncreature, nonland card      | reveal that card, put it into  | from your hand: Add {G}.        | ||||
| | from it. That player discards  | your hand, then shuffle.       |                                 | ||||
| | that card.                     |                                |                                 | ||||
| 
 | ||||
| | Endurance {1}{G}{G} (Creature  | Fatal Push {B} (Instant) >>    | Flooded Strand (Land) >> {T},   | ||||
| | — Elemental Incarnation) >>    | Destroy target creature if it  | Pay 1 life, Sacrifice Flooded   | ||||
| | Flash Reach When Endurance     | has mana value 2 or less.      | Strand: Search your library     | ||||
| | enters the battlefield, up to  | Revolt — Destroy that          | for a Plains or Island card,    | ||||
| | one target player puts all     | creature if it has mana value  | put it onto the battlefield,    | ||||
| | the cards from their           | 4 or less instead if a         | then shuffle.                   | ||||
| | graveyard on the bottom of     | permanent you controlled left  |                                 | ||||
| | their library in a random      | the battlefield this turn.     |                                 | ||||
| | order. Evoke—Exile a green     |                                |                                 | ||||
| | card from your hand.           |                                |                                 | ||||
| 
 | ||||
| | Forest (Basic Land —           | Forth Eorlingas! {X}{R}{W}     | Generous Ent {5}{G} (Creature   | ||||
| | Forest) >> ({T}: Add {G}.)     | (Sorcery) >> Create X 2/2 red  | — Treefolk) >> Reach When       | ||||
| |                                | Human Knight creature tokens   | Generous Ent enters the         | ||||
| |                                | with trample and haste.        | battlefield, create a Food      | ||||
| |                                | Whenever one or more           | token. (It's an artifact with   | ||||
| |                                | creatures you control deal     | "{2}, {T}, Sacrifice this       | ||||
| |                                | combat damage to one or more   | artifact: You gain 3 life.")    | ||||
| |                                | players this turn, you become  | Forestcycling {1} ({1},         | ||||
| |                                | the monarch.                   | Discard this card: Search       | ||||
| |                                |                                | your library for a Forest       | ||||
| |                                |                                | card, reveal it, put it into    | ||||
| |                                |                                | your hand, then shuffle.)       | ||||
| 
 | ||||
| | Gitaxian Probe {U/P}           | Godless Shrine (Land —         | Green Sun's Zenith {X}{G}       | ||||
| | (Sorcery) >> ({U/P} can be     | Plains Swamp) >> ({T}: Add     | (Sorcery) >> Search your        | ||||
| | paid with either {U} or 2      | {W} or {B}.) As Godless        | library for a green creature    | ||||
| | life.) Look at target          | Shrine enters the              | card with mana value X or       | ||||
| | player's hand. Draw a card.    | battlefield, you may pay 2     | less, put it onto the           | ||||
| |                                | life. If you don't, it enters  | battlefield, then shuffle.      | ||||
| |                                | the battlefield tapped.        | Shuffle Green Sun's Zenith      | ||||
| |                                |                                | into its owner's library.       | ||||
| 
 | ||||
| | Grist, the Hunger Tide         | Hexdrinker {G} (Creature —     | Ignoble Hierarch {G}            | ||||
| | {1}{B}{G} (Legendary           | Snake) >> Level up {1} ({1}:   | (Creature — Goblin Shaman)      | ||||
| | Planeswalker — Grist) >> As    | Put a level counter on this.   | >> Exalted (Whenever a          | ||||
| | long as Grist, the Hunger      | Level up only as a sorcery.)   | creature you control attacks    | ||||
| | Tide isn't on the              | LEVEL 3-7 4/4 Protection from  | alone, that creature gets       | ||||
| | battlefield, it's a 1/1        | instants LEVEL 8+ 6/6          | +1/+1 until end of turn.)       | ||||
| | Insect creature in addition    | Protection from everything     | {T}: Add {B}, {R}, or {G}.      | ||||
| | to its other types. +1:        |                                |                                 | ||||
| | Create a 1/1 black and green   |                                |                                 | ||||
| | Insect creature token, then    |                                |                                 | ||||
| | mill a card. If an Insect      |                                |                                 | ||||
| | card was milled this way, put  |                                |                                 | ||||
| | a loyalty counter on Grist     |                                |                                 | ||||
| | and repeat this process.       |                                |                                 | ||||
| | −2: You may sacrifice a        |                                |                                 | ||||
| | creature. When you do,         |                                |                                 | ||||
| | destroy target creature or     |                                |                                 | ||||
| | planeswalker. −5: Each         |                                |                                 | ||||
| | opponent loses life equal to   |                                |                                 | ||||
| | the number of creature cards   |                                |                                 | ||||
| | in your graveyard.             |                                |                                 | ||||
| 
 | ||||
| | Inquisition of Kozilek {B}     | Inti, Seneschal of the Sun     | Karakas (Legendary Land) >>     | ||||
| | (Sorcery) >> Target player     | {1}{R} (Legendary Creature     | {T}: Add {W}. {T}: Return       | ||||
| | reveals their hand. You        | — Human Knight) >> Whenever    | target legendary creature to    | ||||
| | choose a nonland card from it  | you attack, you may discard a  | its owner's hand.               | ||||
| | with mana value 3 or less.     | card. When you do, put a       |                                 | ||||
| | That player discards that      | +1/+1 counter on target        |                                 | ||||
| | card.                          | attacking creature. It gains   |                                 | ||||
| |                                | trample until end of turn.     |                                 | ||||
| |                                | Whenever you discard one or    |                                 | ||||
| |                                | more cards, exile the top      |                                 | ||||
| |                                | card of your library. You may  |                                 | ||||
| |                                | play that card until your      |                                 | ||||
| |                                | next end step.                 |                                 | ||||
| 
 | ||||
| | Kellan, Daring Traveler //     | Laelia, the Blade Reforged     | Legolas's Quick Reflexes {G}    | ||||
| | Journey On {1}{W} // {G}       | {2}{R} (Legendary Creature     | (Instant) >> Split second (As   | ||||
| | (Legendary Creature — Human    | — Spirit Warrior) >> Haste     | long as this spell is on the    | ||||
| | Faerie Scout // Sorcery —      | Whenever Laelia, the Blade     | stack, players can't cast       | ||||
| | Adventure) >> Whenever         | Reforged attacks, exile the    | spells or activate abilities    | ||||
| | Kellan, Daring Traveler        | top card of your library. You  | that aren't mana abilities.)    | ||||
| | attacks, reveal the top card   | may play that card this turn.  | Untap target creature. Until    | ||||
| | of your library. If it's a     | Whenever one or more cards     | end of turn, it gains           | ||||
| | creature card with mana value  | are put into exile from your   | hexproof, reach, and            | ||||
| | 3 or less, put it into your    | library and/or your            | "Whenever this creature         | ||||
| | hand. Otherwise, you may put   | graveyard, put a +1/+1         | becomes tapped, it deals        | ||||
| | it into your graveyard. //     | counter on Laelia.             | damage equal to its power to    | ||||
| | Create X Map tokens, where X   |                                | up to one target creature."     | ||||
| | is one plus the number of      |                                |                                 | ||||
| | opponents who control an       |                                |                                 | ||||
| | artifact. (Then exile this     |                                |                                 | ||||
| | card. You may cast the         |                                |                                 | ||||
| | creature later from exile.)    |                                |                                 | ||||
| 
 | ||||
| | Leyline Binding {5}{W}         | Lord Skitter, Sewer King       | Lotus Petal {0} (Artifact) >>   | ||||
| | (Enchantment) >> Flash Domain  | {2}{B} (Legendary Creature     | {T}, Sacrifice Lotus Petal:     | ||||
| | — This spell costs {1} less    | — Rat Noble) >> Whenever       | Add one mana of any color.      | ||||
| | to cast for each basic land    | another Rat enters the         |                                 | ||||
| | type among lands you control.  | battlefield under your         |                                 | ||||
| | When Leyline Binding enters    | control, exile up to one       |                                 | ||||
| | the battlefield, exile target  | target card from an            |                                 | ||||
| | nonland permanent an opponent  | opponent's graveyard. At the   |                                 | ||||
| | controls until Leyline         | beginning of combat on your    |                                 | ||||
| | Binding leaves the             | turn, create a 1/1 black Rat   |                                 | ||||
| | battlefield.                   | creature token with "This      |                                 | ||||
| |                                | creature can't block."         |                                 | ||||
| 
 | ||||
| | Luminarch Aspirant {1}{W}      | Mana Confluence (Land) >>      | Marsh Flats (Land) >> {T},      | ||||
| | (Creature — Human Cleric)      | {T}, Pay 1 life: Add one mana  | Pay 1 life, Sacrifice Marsh     | ||||
| | >> At the beginning of combat  | of any color.                  | Flats: Search your library      | ||||
| | on your turn, put a +1/+1      |                                | for a Plains or Swamp card,     | ||||
| | counter on target creature     |                                | put it onto the battlefield,    | ||||
| | you control.                   |                                | then shuffle.                   | ||||
| 
 | ||||
| | Mawloc {X}{R}{G} (Creature     | Mental Misstep {U/P}           | Minsc & Boo, Timeless Heroes    | ||||
| | — Tyranid) >> Ravenous         | (Instant) >> ({U/P} can be     | {2}{R}{G} (Legendary            | ||||
| | (This creature enters the      | paid with either {U} or 2      | Planeswalker — Minsc) >>        | ||||
| | battlefield with X +1/+1       | life.) Counter target spell    | When Minsc & Boo, Timeless      | ||||
| | counters on it. If X is 5 or   | with mana value 1.             | Heroes enters the battlefield   | ||||
| | more, draw a card when it      |                                | and at the beginning of your    | ||||
| | enters.) Terror from the Deep  |                                | upkeep, you may create Boo, a   | ||||
| | — When Mawloc enters the       |                                | legendary 1/1 red Hamster       | ||||
| | battlefield, it fights up to   |                                | creature token with trample     | ||||
| | one target creature an         |                                | and haste. +1: Put three        | ||||
| | opponent controls. If that     |                                | +1/+1 counters on up to one     | ||||
| | creature would die this turn,  |                                | target creature with trample    | ||||
| | exile it instead.              |                                | or haste. −2: Sacrifice a       | ||||
| |                                |                                | creature. When you do, Minsc    | ||||
| |                                |                                | & Boo, Timeless Heroes deals    | ||||
| |                                |                                | X damage to any target, where   | ||||
| |                                |                                | X is that creature's power.     | ||||
| |                                |                                | If the sacrificed creature      | ||||
| |                                |                                | was a Hamster, draw X cards.    | ||||
| |                                |                                | Minsc & Boo, Timeless Heroes    | ||||
| |                                |                                | can be your commander.          | ||||
| 
 | ||||
| | Misty Rainforest (Land) >>     | Mosswood Dreadknight // Dread  | Mother of Runes {W} (Creature   | ||||
| | {T}, Pay 1 life, Sacrifice     | Whispers {1}{G} // {1}{B}      | — Human Cleric) >> {T}:         | ||||
| | Misty Rainforest: Search your  | (Creature — Human Knight //    | Target creature you control     | ||||
| | library for a Forest or        | Sorcery — Adventure) >>        | gains protection from the       | ||||
| | Island card, put it onto the   | Trample When Mosswood          | color of your choice until      | ||||
| | battlefield, then shuffle.     | Dreadknight dies, you may      | end of turn.                    | ||||
| |                                | cast it from your graveyard    |                                 | ||||
| |                                | as an Adventure until the end  |                                 | ||||
| |                                | of your next turn. // You      |                                 | ||||
| |                                | draw a card and you lose 1     |                                 | ||||
| |                                | life. (Then exile this card.   |                                 | ||||
| |                                | You may cast the creature      |                                 | ||||
| |                                | later from exile.)             |                                 | ||||
| 
 | ||||
| | Mox Diamond {0} (Artifact) >>  | Mox Emerald {0} (Artifact) >>  | Mox Jet {0} (Artifact) >>       | ||||
| | If Mox Diamond would enter     | {T}: Add {G}.                  | {T}: Add {B}.                   | ||||
| | the battlefield, you may       |                                |                                 | ||||
| | discard a land card instead.   |                                |                                 | ||||
| | If you do, put Mox Diamond     |                                |                                 | ||||
| | onto the battlefield. If you   |                                |                                 | ||||
| | don't, put it into its         |                                |                                 | ||||
| | owner's graveyard. {T}: Add    |                                |                                 | ||||
| | one mana of any color.         |                                |                                 | ||||
| 
 | ||||
| | Mox Pearl {0} (Artifact) >>    | Noble Hierarch {G} (Creature   | Once Upon a Time {1}{G}         | ||||
| | {T}: Add {W}.                  | — Human Druid) >> Exalted      | (Instant) >> If this spell is   | ||||
| |                                | (Whenever a creature you       | the first spell you've cast     | ||||
| |                                | control attacks alone, that    | this game, you may cast it      | ||||
| |                                | creature gets +1/+1 until end  | without paying its mana cost.   | ||||
| |                                | of turn.) {T}: Add {G}, {W},   | Look at the top five cards of   | ||||
| |                                | or {U}.                        | your library. You may reveal    | ||||
| |                                |                                | a creature or land card from    | ||||
| |                                |                                | among them and put it into      | ||||
| |                                |                                | your hand. Put the rest on      | ||||
| |                                |                                | the bottom of your library in   | ||||
| |                                |                                | a random order.                 | ||||
| 
 | ||||
| | Opposition Agent {2}{B}        | Orcish Bowmasters {1}{B}       | Overgrown Tomb (Land —          | ||||
| | (Creature — Human Rogue) >>    | (Creature — Orc Archer) >>     | Swamp Forest) >> ({T}: Add      | ||||
| | Flash You control your         | Flash When Orcish Bowmasters   | {B} or {G}.) As Overgrown       | ||||
| | opponents while they're        | enters the battlefield and     | Tomb enters the battlefield,    | ||||
| | searching their libraries.     | whenever an opponent draws a   | you may pay 2 life. If you      | ||||
| | While an opponent is           | card except the first one      | don't, it enters the            | ||||
| | searching their library, they  | they draw in each of their     | battlefield tapped.             | ||||
| | exile each card they find.     | draw steps, Orcish Bowmasters  |                                 | ||||
| | You may play those cards for   | deals 1 damage to any target.  |                                 | ||||
| | as long as they remain         | Then amass Orcs 1.             |                                 | ||||
| | exiled, and you may spend      |                                |                                 | ||||
| | mana as though it were mana    |                                |                                 | ||||
| | of any color to cast them.     |                                |                                 | ||||
| 
 | ||||
| | Path to Exile {W} (Instant)    | Plains (Basic Land —           | Plateau (Land — Mountain        | ||||
| | >> Exile target creature. Its  | Plains) >> ({T}: Add {W}.)     | Plains) >> ({T}: Add {R} or     | ||||
| | controller may search their    |                                | {W}.)                           | ||||
| | library for a basic land       |                                |                                 | ||||
| | card, put that card onto the   |                                |                                 | ||||
| | battlefield tapped, then       |                                |                                 | ||||
| | shuffle.                       |                                |                                 | ||||
| 
 | ||||
| | Polluted Delta (Land) >> {T},  | Prismatic Ending {X}{W}        | Prismatic Vista (Land) >>       | ||||
| | Pay 1 life, Sacrifice          | (Sorcery) >> Converge —        | {T}, Pay 1 life, Sacrifice      | ||||
| | Polluted Delta: Search your    | Exile target nonland           | Prismatic Vista: Search your    | ||||
| | library for an Island or       | permanent if its mana value    | library for a basic land        | ||||
| | Swamp card, put it onto the    | is less than or equal to the   | card, put it onto the           | ||||
| | battlefield, then shuffle.     | number of colors of mana       | battlefield, then shuffle.      | ||||
| |                                | spent to cast this spell.      |                                 | ||||
| 
 | ||||
| | Questing Beast {2}{G}{G}       | Razorverge Thicket (Land) >>   | Reanimate {B} (Sorcery) >>      | ||||
| | (Legendary Creature —          | Razorverge Thicket enters the  | Put target creature card from   | ||||
| | Beast) >> Vigilance,           | battlefield tapped unless you  | a graveyard onto the            | ||||
| | deathtouch, haste Questing     | control two or fewer other     | battlefield under your          | ||||
| | Beast can't be blocked by      | lands. {T}: Add {G} or {W}.    | control. You lose life equal    | ||||
| | creatures with power 2 or      |                                | to its mana value.              | ||||
| | less. Combat damage that       |                                |                                 | ||||
| | would be dealt by creatures    |                                |                                 | ||||
| | you control can't be           |                                |                                 | ||||
| | prevented. Whenever Questing   |                                |                                 | ||||
| | Beast deals combat damage to   |                                |                                 | ||||
| | an opponent, it deals that     |                                |                                 | ||||
| | much damage to target          |                                |                                 | ||||
| | planeswalker that player       |                                |                                 | ||||
| | controls.                      |                                |                                 | ||||
| 
 | ||||
| | Savannah (Land — Forest        | Scalding Tarn (Land) >> {T},   | Scavenging Ooze {1}{G}          | ||||
| | Plains) >> ({T}: Add {G} or    | Pay 1 life, Sacrifice          | (Creature — Ooze) >> {G}:       | ||||
| | {W}.)                          | Scalding Tarn: Search your     | Exile target card from a        | ||||
| |                                | library for an Island or       | graveyard. If it was a          | ||||
| |                                | Mountain card, put it onto     | creature card, put a +1/+1      | ||||
| |                                | the battlefield, then          | counter on Scavenging Ooze      | ||||
| |                                | shuffle.                       | and you gain 1 life.            | ||||
| 
 | ||||
| | Scrubland (Land — Plains       | Seasoned Dungeoneer {3}{W}     | Sentinel of the Nameless City   | ||||
| | Swamp) >> ({T}: Add {W} or     | (Creature — Human Warrior)     | {2}{G} (Creature — Merfolk      | ||||
| | {B}.)                          | >> When Seasoned Dungeoneer    | Warrior Scout) >> Vigilance     | ||||
| |                                | enters the battlefield, you    | Whenever Sentinel of the        | ||||
| |                                | take the initiative. Whenever  | Nameless City enters the        | ||||
| |                                | you attack, target attacking   | battlefield or attacks,         | ||||
| |                                | Cleric, Rogue, Warrior, or     | create a Map token. (It's an    | ||||
| |                                | Wizard gains protection from   | artifact with "{1}, {T},        | ||||
| |                                | creatures until end of turn.   | Sacrifice this artifact:        | ||||
| |                                | It explores. (Reveal the top   | Target creature you control     | ||||
| |                                | card of your library. Put      | explores. Activate only as a    | ||||
| |                                | that card into your hand if    | sorcery.")                      | ||||
| |                                | it's a land. Otherwise, put a  |                                 | ||||
| |                                | +1/+1 counter on the           |                                 | ||||
| |                                | creature, then put the card    |                                 | ||||
| |                                | back or put it into your       |                                 | ||||
| |                                | graveyard.)                    |                                 | ||||
| 
 | ||||
| | Shadowspear {1} (Legendary     | Simian Spirit Guide {2}{R}     | Stomping Ground (Land —         | ||||
| | Artifact — Equipment) >>       | (Creature — Ape Spirit) >>     | Mountain Forest) >> ({T}: Add   | ||||
| | Equipped creature gets +1/+1   | Exile Simian Spirit Guide      | {R} or {G}.) As Stomping        | ||||
| | and has trample and lifelink.  | from your hand: Add {R}.       | Ground enters the               | ||||
| | {1}: Permanents your           |                                | battlefield, you may pay 2      | ||||
| | opponents control lose         |                                | life. If you don't, it enters   | ||||
| | hexproof and indestructible    |                                | the battlefield tapped.         | ||||
| | until end of turn. Equip {2}   |                                |                                 | ||||
| 
 | ||||
| | Sungold Sentinel {1}{W}        | Swamp (Basic Land — Swamp)     | Swords to Plowshares {W}        | ||||
| | (Creature — Human Soldier)     | >> ({T}: Add {B}.)             | (Instant) >> Exile target       | ||||
| | >> Whenever Sungold Sentinel   |                                | creature. Its controller        | ||||
| | enters the battlefield or      |                                | gains life equal to its         | ||||
| | attacks, exile up to one       |                                | power.                          | ||||
| | target card from a graveyard.  |                                |                                 | ||||
| | Coven — {1}{W}: Choose a       |                                |                                 | ||||
| | color. Sungold Sentinel gains  |                                |                                 | ||||
| | hexproof from that color       |                                |                                 | ||||
| | until end of turn and can't    |                                |                                 | ||||
| | be blocked by creatures of     |                                |                                 | ||||
| | that color this turn.          |                                |                                 | ||||
| | Activate only if you control   |                                |                                 | ||||
| | three or more creatures with   |                                |                                 | ||||
| | different powers.              |                                |                                 | ||||
| 
 | ||||
| | Taiga (Land — Mountain         | Tarmogoyf {1}{G} (Creature     | Temple Garden (Land —           | ||||
| | Forest) >> ({T}: Add {R} or    | — Lhurgoyf) >> Tarmogoyf's     | Forest Plains) >> ({T}: Add     | ||||
| | {G}.)                          | power is equal to the number   | {G} or {W}.) As Temple Garden   | ||||
| |                                | of card types among cards in   | enters the battlefield, you     | ||||
| |                                | all graveyards and its         | may pay 2 life. If you don't,   | ||||
| |                                | toughness is equal to that     | it enters the battlefield       | ||||
| |                                | number plus 1.                 | tapped.                         | ||||
| 
 | ||||
| | Tenth District Hero {1}{W}     | Thalia, Guardian of Thraben    | Thalia, Heretic Cathar {2}{W}   | ||||
| | (Creature — Human) >>          | {1}{W} (Legendary Creature     | (Legendary Creature — Human     | ||||
| | {1}{W}, Collect evidence 2:    | — Human Soldier) >> First      | Soldier) >> First strike        | ||||
| | Tenth District Hero becomes a  | strike Noncreature spells      | Creatures and nonbasic lands    | ||||
| | Human Detective with base      | cost {1} more to cast.         | your opponents control enter    | ||||
| | power and toughness 4/4 and    |                                | the battlefield tapped.         | ||||
| | gains vigilance. {2}{W},       |                                |                                 | ||||
| | Collect evidence 4: If Tenth   |                                |                                 | ||||
| | District Hero is a Detective,  |                                |                                 | ||||
| | it becomes a legendary         |                                |                                 | ||||
| | creature named Mileva, the     |                                |                                 | ||||
| | Stalwart, it has base power    |                                |                                 | ||||
| | and toughness 5/5, and it      |                                |                                 | ||||
| | gains "Other creatures you     |                                |                                 | ||||
| | control have indestructible."  |                                |                                 | ||||
| 
 | ||||
| | Thoughtseize {B} (Sorcery) >>  | Tidehollow Sculler {W}{B}      | Troll of Khazad-dûm {5}{B}      | ||||
| | Target player reveals their    | (Artifact Creature —           | (Creature — Troll) >> Troll     | ||||
| | hand. You choose a nonland     | Zombie) >> When Tidehollow     | of Khazad-dûm can't be          | ||||
| | card from it. That player      | Sculler enters the             | blocked except by three or      | ||||
| | discards that card. You lose   | battlefield, target opponent   | more creatures. Swampcycling    | ||||
| | 2 life.                        | reveals their hand and you     | {1} ({1}, Discard this card:    | ||||
| |                                | choose a nonland card from     | Search your library for a       | ||||
| |                                | it. Exile that card. When      | Swamp card, reveal it, put it   | ||||
| |                                | Tidehollow Sculler leaves the  | into your hand, then            | ||||
| |                                | battlefield, return the        | shuffle.)                       | ||||
| |                                | exiled card to its owner's     |                                 | ||||
| |                                | hand.                          |                                 | ||||
| 
 | ||||
| | Underground Mortuary (Land     | Undermountain Adventurer       | Unearth {B} (Sorcery) >>        | ||||
| | — Swamp Forest) >> ({T}:       | {3}{G} (Creature — Giant       | Return target creature card     | ||||
| | Add {B} or {G}.) Underground   | Warrior) >> Vigilance When     | with mana value 3 or less       | ||||
| | Mortuary enters the            | Undermountain Adventurer       | from your graveyard to the      | ||||
| | battlefield tapped. When       | enters the battlefield, you    | battlefield. Cycling {2}        | ||||
| | Underground Mortuary enters    | take the initiative. {T}: Add  | ({2}, Discard this card: Draw   | ||||
| | the battlefield, surveil 1.    | {G}{G}. If you've completed a  | a card.)                        | ||||
| | (Look at the top card of your  | dungeon, add six {G} instead.  |                                 | ||||
| | library. You may put it into   |                                |                                 | ||||
| | your graveyard.)               |                                |                                 | ||||
| 
 | ||||
| | Verdant Catacombs (Land) >>    | Wasteland (Land) >> {T}: Add   | White Plume Adventurer {2}{W}   | ||||
| | {T}, Pay 1 life, Sacrifice     | {C}. {T}, Sacrifice            | (Creature — Orc Cleric) >>      | ||||
| | Verdant Catacombs: Search      | Wasteland: Destroy target      | When White Plume Adventurer     | ||||
| | your library for a Swamp or    | nonbasic land.                 | enters the battlefield, you     | ||||
| | Forest card, put it onto the   |                                | take the initiative. At the     | ||||
| | battlefield, then shuffle.     |                                | beginning of each opponent's    | ||||
| |                                |                                | upkeep, untap a creature you    | ||||
| |                                |                                | control. If you've completed    | ||||
| |                                |                                | a dungeon, untap all            | ||||
| |                                |                                | creatures you control           | ||||
| |                                |                                | instead.                        | ||||
| 
 | ||||
| | Windswept Heath (Land) >>      | Witherbloom Command {B}{G}     | Wooded Foothills (Land) >>      | ||||
| | {T}, Pay 1 life, Sacrifice     | (Sorcery) >> Choose two —      | {T}, Pay 1 life, Sacrifice      | ||||
| | Windswept Heath: Search your   | • Target player mills three    | Wooded Foothills: Search your   | ||||
| | library for a Forest or        | cards, then you return a land  | library for a Mountain or       | ||||
| | Plains card, put it onto the   | card from your graveyard to    | Forest card, put it onto the    | ||||
| | battlefield, then shuffle.     | your hand. • Destroy target    | battlefield, then shuffle.      | ||||
| |                                | noncreature, nonland           |                                 | ||||
| |                                | permanent with mana value 2    |                                 | ||||
| |                                | or less. • Target creature     |                                 | ||||
| |                                | gets -3/-1 until end of turn.  |                                 | ||||
| |                                | • Target opponent loses 2      |                                 | ||||
| |                                | life and you gain 2 life.      |                                 | ||||
| 
 | ||||
| | Wrenn and Six {R}{G}           |                                |                                 | ||||
| | (Legendary Planeswalker —      |                                |                                 | ||||
| | Wrenn) >> +1: Return up to     |                                |                                 | ||||
| | one target land card from      |                                |                                 | ||||
| | your graveyard to your hand.   |                                |                                 | ||||
| | −1: Wrenn and Six deals 1      |                                |                                 | ||||
| | damage to any target. −7:      |                                |                                 | ||||
| | You get an emblem with         |                                |                                 | ||||
| | "Instant and sorcery cards in  |                                |                                 | ||||
| | your graveyard have retrace."  |                                |                                 | ||||
| | (You may cast instant and      |                                |                                 | ||||
| | sorcery cards from your        |                                |                                 | ||||
| | graveyard by discarding a      |                                |                                 | ||||
| | land card in addition to       |                                |                                 | ||||
| | paying their other costs.)     |                                |                                 | ||||
| 
 | ||||
| ``` | ||||
							
								
								
									
										396
									
								
								print.zig
								
								
								
								
							
							
						
						
									
										396
									
								
								print.zig
								
								
								
								
							|  | @ -1,235 +1,215 @@ | |||
| //TODO:  | ||||
| const std = @import("std"); | ||||
| const clap = @import("clap"); | ||||
| const print = std.debug.print; | ||||
| const io = std.io; | ||||
| const fs = std.fs; | ||||
| const json = std.json; | ||||
| const cwd = fs.cwd(); | ||||
| 
 | ||||
| const ImgList = struct { | ||||
|     small:          ?[]const u8,//string | ||||
|     normal:         ?[]const u8,//string | ||||
|     large:          ?[]const u8,//string | ||||
|     png:            ?[]const u8,//string | ||||
|     art_crop:       ?[]const u8,//string | ||||
|     border_crop:    ?[]const u8,//string | ||||
| }; | ||||
| 
 | ||||
| const Legalities = struct { | ||||
|         standard:   ?[]const u8,//string | ||||
|         future:     ?[]const u8,//string | ||||
|         historic:   ?[]const u8,//string | ||||
|         timeless:   ?[]const u8,//string | ||||
|         gladiator:  ?[]const u8,//string | ||||
|         pioneer:    ?[]const u8,//string | ||||
|         explorer:   ?[]const u8,//string | ||||
|         modern:     ?[]const u8,//string | ||||
|         legacy:     ?[]const u8,//string | ||||
|         pauper:     ?[]const u8,//string | ||||
|         vintage:    ?[]const u8,//string | ||||
|         penny:      ?[]const u8,//string | ||||
|         commander:  ?[]const u8,//string | ||||
|         oathbreaker:?[]const u8,//string | ||||
|         standardbrawl:?[]const u8,//string | ||||
|         brawl:      ?[]const u8,//string | ||||
|         alchemy:    ?[]const u8,//string | ||||
|         paupercommander:?[]const u8,//string | ||||
|         duel:       ?[]const u8,//string | ||||
|         oldschool:  ?[]const u8,//string | ||||
|         premodern:  ?[]const u8,//string | ||||
|         predh:      ?[]const u8,//string | ||||
| }; | ||||
| 
 | ||||
| const Prices = struct { | ||||
|     usd:        ?[]const u8,//string? but technically a float | ||||
|     usd_foil:   ?[]const u8,//same | ||||
|     usd_etched: ?[]const u8,//same | ||||
|     eur:        ?[]const u8,//same | ||||
|     eur_foil:   ?[]const u8,//same | ||||
|     tix:        ?[]const u8,//same | ||||
| }; | ||||
| 
 | ||||
| const RelatedUris = struct { | ||||
|     gatherer:                       ?[]const u8,//string | ||||
|     tcgplayer_infinite_articles:    ?[]const u8,//string | ||||
|     tcgplayer_infinite_decks:       ?[]const u8,//string | ||||
|     edhrec:                         ?[]const u8,//string | ||||
| }; | ||||
| 
 | ||||
| const PurchaseUris = struct { | ||||
|         tcgplayer:          ?[]const u8,//string | ||||
|         cardmarket:         ?[]const u8,//string | ||||
|         cardhoarder:        ?[]const u8,//string | ||||
| }; | ||||
| 
 | ||||
| const val_or_nothing = union(enum) { | ||||
|     none: void, | ||||
|     int: i32, | ||||
|     float: f64, | ||||
|     string: []const u8, | ||||
| }; | ||||
| const indexOf = std.mem.indexOf; | ||||
| const expect = std.testing.expect; | ||||
| 
 | ||||
| const Card = struct { | ||||
|     // object:                 ?[]const u8,//string | ||||
|     // id:                     ?[]const u8,//string | ||||
|     // oracle_id:              ?[]const u8,//string | ||||
|     // multiverse_ids:               ?[]u32,//array of int | ||||
|     // mtgo_id:                        ?u32,//int | ||||
|     // mtgo_foil_id:                   ?u32,//int | ||||
|     // tcgplayer_id:                   ?u32,//int | ||||
|     // cardmarket_id:                  ?u32,//int | ||||
|     name:                   ?[]const u8,//string | ||||
|     // lang:                   ?[]const u8,//string | ||||
|     // released_at:            ?[]const u8,//string | ||||
|     // uri:                    ?[]const u8,//string | ||||
|     // scryfall_uri:           ?[]const u8,//string | ||||
|     // layout:                 ?[]const u8,//string | ||||
|     // highres_image:                ?bool,//bool | ||||
|     // image_status:           ?[]const u8,//string | ||||
|     // image_uris:                ?ImgList,//obj (strings) | ||||
|     // mana_cost:              ?[]const u8,//string | ||||
|     cmc:                            ?f32,//technically a float? but I think we can always cast safely EDIT: NOPE | ||||
|     type_line:              ?[]const u8,//string | ||||
|     oracle_text:            ?[]const u8 = "",//string | ||||
|     // colors:                 json.Value,//?[]const u8,//array of Chars | ||||
|     color_identity:         json.Value,//?[]const u8,//array of Chars | ||||
|     keywords:             ?[][]const u8,//array of Strings | ||||
|     // legalities:             ?Legalities,//obj (strings) | ||||
|     // games:                ?[][]const u8,//array of Strings | ||||
|     // reserved:                     ?bool,//bool | ||||
|     // foil:                         ?bool,//bool | ||||
|     // nonfoil:                      ?bool,//bool | ||||
|     // finishes:             ?[][]const u8,//array of Strings | ||||
|     // oversized:                    ?bool,//bool | ||||
|     // promo:                        ?bool,//bool | ||||
|     // reprint:                      ?bool,//bool | ||||
|     // variation:                    ?bool,//bool | ||||
|     // set_id:                 ?[]const u8,//string | ||||
|     // set:                    ?[]const u8,//string | ||||
|     // set_name:               ?[]const u8,//string | ||||
|     // set_type:               ?[]const u8,//string | ||||
|     // set_uri:                ?[]const u8,//string | ||||
|     // set_search_uri:         ?[]const u8,//string | ||||
|     // scryfall_set_uri:       ?[]const u8,//string | ||||
|     // rulings_uri:            ?[]const u8,//string | ||||
|     // prints_search_uri:      ?[]const u8,//string | ||||
|     // collector_number:       ?[]const u8,//string | ||||
|     // digital:                      ?bool,//bool | ||||
|     // rarity:                 ?[]const u8,//string | ||||
|     // flavor_text:            ?[]const u8,//string | ||||
|     // card_back_id:           ?[]const u8,//string | ||||
|     // artist:                 ?[]const u8,//string | ||||
|     // artist_ids:           ?[][]const u8,//string | ||||
|     // illustration_id:        ?[]const u8,//string | ||||
|     // border_color:           ?[]const u8,//string | ||||
|     // frame:                  ?[]const u8,//string | ||||
|     // full_art:                     ?bool,//bool | ||||
|     // textless:                     ?bool,//bool | ||||
|     // booster:                      ?bool,//bool | ||||
|     // story_spotlight:              ?bool,//bool | ||||
|     // edhrec_rank:                    ?u32,//int | ||||
|     // prices:                     ?Prices,//obj (floats stored as strings) | ||||
|     // related_uris:         json.Value,//?RelatedUris,//obj (strings) | ||||
|     // purchase_uris:        json.Value,//?PurchaseUris,//obj (strings) | ||||
|     name:                   []const u8 = "",//string | ||||
|     mana_cost:              []const u8 = "",//string | ||||
|     cmc:                            f32 = 0,//technically a float? but I think we can always cast safely cast. EDIT: NOPE | ||||
|     type_line:              []const u8 = "",//string | ||||
|     oracle_text:            []const u8 = "",//string | ||||
|     card_faces:              ?[]Card = null,//array of cards | ||||
| }; | ||||
| 
 | ||||
| pub fn main() !void { | ||||
| const TextCard = struct { | ||||
|     text: [][]const u8, | ||||
| }; | ||||
| 
 | ||||
|     //const stdin = io.getStdIn().reader(); | ||||
|     const stdout = io.getStdOut().writer(); | ||||
|     const args = try std.process.argsAlloc(std.heap.page_allocator); | ||||
|     if (args.len < 2) return error.ExpectedArgument; | ||||
|      | ||||
|     const listFileName: []const u8 = args[1]; | ||||
|     const listFileSize = (try cwd.statFile(listFileName)).size; | ||||
| const PandocOptions = &[_][]const u8{ | ||||
|                 "pandoc",  | ||||
|                 "out.md",  | ||||
|                 "-o", "out.pdf",  | ||||
|                 "--pdf-engine", "xelatex", | ||||
|                 "-V", "mainfont:Liberation Mono", | ||||
|                 "-V", "geometry:margin=0cm" | ||||
| }; | ||||
| 
 | ||||
| const cardWidth = 30; | ||||
| const cardHeight = 32; | ||||
| const pageHeight = 66; | ||||
| var heightMayVary = false; | ||||
| const formatString = "{s: <" ++ std.fmt.digits2(cardWidth) ++ "}"; | ||||
| //kind of ugly to look at but I wanted to emphasize that there is one space on either side of the formatted string | ||||
| const lineFormatter = "|" ++ " " ++ formatString ++ " "; | ||||
| const spacer: []const u8 = "|" ++ (" " ** (cardWidth + 2)); | ||||
| const oracleFileName = "oracle-cards-20240205220208.js"; | ||||
| 
 | ||||
| pub fn main() !void { | ||||
|     var args = try std.process.argsWithAllocator(std.heap.page_allocator); | ||||
| 
 | ||||
|     //handle program name argument | ||||
|     _ = args.next(); | ||||
|     const listFileName: []const u8 = args.next() orelse {return error.ExpectedArgument;}; | ||||
|     heightMayVary = stringToBool(args.next()); | ||||
| 
 | ||||
|     var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator); | ||||
|     defer arena.deinit(); | ||||
|     const allocator = arena.allocator(); | ||||
| 
 | ||||
|      | ||||
|     //================================= | ||||
|     //      slice implementation | ||||
|     //================================= | ||||
| 
 | ||||
|     // const oracleFileSize = (try cwd.statFile(oracleFileName)).size; | ||||
|     // const oracleBuf = try allocator.alloc(u8, oracleFileSize); | ||||
|     // const oracleString = try fs.cwd().readFile(oracleFileName, oracleBuf); | ||||
|     // const parsedJson = json.parseFromSlice([]Card, allocator, oracleString, .{.ignore_unknown_fields = true}); | ||||
|     // try stdout.print("{any}", .{parsedJson}); | ||||
| 
 | ||||
|     //================================== | ||||
|     //          reader implementation | ||||
|     //================================== | ||||
|      | ||||
|     const oracleFile = try cwd.openFile(oracleFileName, .{}); | ||||
|      const oracleReader = oracleFile.reader(); | ||||
|      var diagnostics = json.Diagnostics{}; | ||||
|      // var jsonReader = json.reader(allocator, oracleReader); | ||||
|      var jsonReader = json.Reader(0x2000, @TypeOf(oracleReader)).init(allocator, oracleReader); | ||||
|      jsonReader.enableDiagnostics(&diagnostics); | ||||
|     var jsonReader = json.reader(allocator, oracleFile.reader()); | ||||
|     const parsedJson = try json.parseFromTokenSource([]Card, allocator, &jsonReader, .{.ignore_unknown_fields = true}); | ||||
|      // if (parsedJson == error.InvalidCharacter) { | ||||
|      //     try stdout.print("{s}\n", .{jsonReader.buffer}); | ||||
|      //     try stdout.print("{any}\n", .{jsonReader.scanner.stack}); | ||||
|      //     const cursorPos = jsonReader.scanner.cursor; | ||||
|      //     try stdout.print("{s}\n", .{jsonReader.scanner.input}); | ||||
|      //     try stdout.print("{d}\n", .{cursorPos}); | ||||
|      //     try stdout.print("{c}\n", .{oracleString[cursorPos]}); | ||||
|      // } | ||||
|      try stdout.print("{?s}, {any}, {any}\n", .{parsedJson.value[0].oracle_text, diagnostics.getLine(), diagnostics.getColumn()}); | ||||
| 
 | ||||
|      //======= | ||||
|      // dynamic impl | ||||
|      //====== | ||||
|     var line = std.ArrayList(u8).init(allocator); | ||||
|     var cards = std.ArrayList(Card).init(allocator); | ||||
|     var rowToPrint = std.ArrayList(Card).init(allocator); | ||||
|          | ||||
|     // const parsed = try json.parseFromSlice(json.Value, allocator, oracleString, .{}); | ||||
|     // defer parsed.deinit(); | ||||
|     // try stdout.print("{any}", .{parsed.value.array.items[0].string}); | ||||
|     // parsed.value.dump(); | ||||
|     const listReader = (try cwd.openFile(listFileName, .{})).reader(); | ||||
| 
 | ||||
|     const listBuf = try allocator.alloc(u8, listFileSize); | ||||
|     var word = std.ArrayList(u8).init(allocator); | ||||
|     //var line = std.ArrayList(u8).init(allocator); | ||||
|     var cardName = std.ArrayList(u8).init(allocator); | ||||
|    for (try fs.cwd().readFile(listFileName, listBuf)) |char| { | ||||
|         if(char != '\n' and char != ' ') { | ||||
|             try word.append(char); | ||||
|         } else { | ||||
|             //try stdout.print("{s}\n", .{word.items}); | ||||
|             if( | ||||
|                 std.mem.indexOfAny(u8, word.items, "()0123456789") == null | ||||
|             ) { | ||||
|                 try cardName.appendSlice(word.items); | ||||
|                 try cardName.appendSlice(" "); | ||||
|     var allPrinted = std.ArrayList(u8).init(allocator); | ||||
| 
 | ||||
|     while (listReader.streamUntilDelimiter(line.writer(), '\n', null)) { | ||||
|         defer line.clearRetainingCapacity(); | ||||
|         const cardName = line.items[indexOf(u8, line.items, " ").? + 1..indexOf(u8, line.items, "(").? - 1]; | ||||
| 
 | ||||
|         // TODO: this seems rather pointlessly time-intensive | ||||
|          for(parsedJson.value) |cardObj| { | ||||
|              if (std.mem.eql(u8, cardObj.name, cardName)) { | ||||
|                  try cards.append(cardObj); | ||||
|              } | ||||
|          } | ||||
|     } else |err| switch(err) { | ||||
|         error.EndOfStream => {}, | ||||
|         else => return err, | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     try sortCards(&cards); | ||||
|     //TODO (fixme): absolutely GARBAGE hack to get pandoc to preserve whitespace | ||||
|     try allPrinted.appendSlice("```\n"); | ||||
| 
 | ||||
|     for(cards.items) |cardObj| { | ||||
|         try rowToPrint.append(cardObj); | ||||
|         if(rowToPrint.items.len >= 3) { | ||||
|             try cardRow.print(allocator, rowToPrint.items, &allPrinted); | ||||
|             try allPrinted.append('\n'); | ||||
|             rowToPrint.clearAndFree(); | ||||
|         } | ||||
|     } else { | ||||
|         try cardRow.print(allocator, rowToPrint.items, &allPrinted); | ||||
|         try allPrinted.append('\n'); | ||||
|         try allPrinted.appendSlice("```\n"); | ||||
|         std.debug.print("{s}", .{allPrinted.items}); | ||||
|         try cwd.writeFile2(.{.sub_path = "out.md", .data = allPrinted.items}); | ||||
|         rowToPrint.clearAndFree(); | ||||
|         var pandocProcess = std.ChildProcess.init(PandocOptions, allocator);  | ||||
|         _ = try pandocProcess.spawnAndWait(); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| //TODO (fixme): card() needs an allocator... | ||||
| fn compareTwo(_: void, a: Card, b: Card) bool { | ||||
|     return card(a).len > card(b).len; | ||||
| } | ||||
| fn sortCards(cards: *std.ArrayList(Card)) !void { | ||||
|     std.mem.sort(Card, cards.items, {}, compareTwo); | ||||
| } | ||||
| 
 | ||||
| fn card(allocator: std.mem.Allocator, cardObj: Card,) ![][]const u8 { | ||||
|     var cardText = std.ArrayList([]const u8).init(allocator); | ||||
| 
 | ||||
|     var fullUnformattedText = std.ArrayList(u8).init(allocator); | ||||
|     try fullUnformattedText.appendSlice(cardObj.name); | ||||
|     if(cardObj.mana_cost.len > 0) { | ||||
|         try fullUnformattedText.append(' '); | ||||
|         try fullUnformattedText.appendSlice(cardObj.mana_cost); | ||||
|     } | ||||
|     try fullUnformattedText.appendSlice(try std.mem.concat(allocator, u8, &[_][]const u8{ | ||||
|         " (", | ||||
|         cardObj.type_line, | ||||
|         ") >> " | ||||
|     })); | ||||
| 
 | ||||
|     try fullUnformattedText.appendSlice(cardObj.oracle_text); | ||||
| 
 | ||||
|     if(cardObj.card_faces) |faces| { | ||||
|         for(faces, 0..) |face, idx| { | ||||
|             try fullUnformattedText.appendSlice(face.oracle_text); | ||||
|             if(idx == 0) try fullUnformattedText.appendSlice(" // "); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     var line = std.ArrayList(u8).init(allocator); | ||||
|     var word = std.ArrayList(u8).init(allocator); | ||||
| 
 | ||||
|     for(fullUnformattedText.items) |char| { | ||||
|         try switch(char) { | ||||
|             '\n', ' ' => addWord(&word, &line, &cardText), | ||||
|             else => word.append(char) | ||||
|         }; | ||||
|     } else { | ||||
|         try addWord(&word, &line, &cardText); | ||||
|         try cardText.append(try line.toOwnedSlice()); | ||||
|         line.clearAndFree(); | ||||
|     } | ||||
|     while(!heightMayVary and cardText.items.len < cardHeight) { | ||||
|         try cardText.append(" " ** cardWidth); | ||||
|     } | ||||
|      | ||||
|     return cardText.items; | ||||
| } | ||||
| 
 | ||||
| fn addWord(word: *std.ArrayList(u8), line: *std.ArrayList(u8), cardText: *std.ArrayList([]const u8)) !void { | ||||
|         if(line.items.len + word.items.len >= cardWidth) { | ||||
|             try cardText.append(try line.toOwnedSlice()); | ||||
|             line.clearAndFree(); | ||||
|         } | ||||
|         try line.appendSlice(word.items); | ||||
|         try line.append(' '); | ||||
|         word.clearAndFree(); | ||||
| } | ||||
|         // if (char != '\n' and (char < '0' or char > '9')) { | ||||
|         //     try line.append(char); | ||||
|         // }  | ||||
|         if (char == '\n') { | ||||
|             // try stdout.print("{s}\n", .{cardName.items}); | ||||
|             cardName.clearAndFree(); | ||||
|             //line.clearAndFree(); | ||||
|         } | ||||
|         //try stdout.print("{c}", .{char}); | ||||
|    } | ||||
| } | ||||
| 
 | ||||
| // fn findInTree(parent: anytype, tree: json.Value, query: []u8) json.Value { | ||||
| //     return switch(tree) |val| { | ||||
| //         .null, .bool, .integer, .float, .number_string, .string => { | ||||
| //             if(val == query) { | ||||
| //                 parent | ||||
| //             } else { | ||||
| //                 false | ||||
| //             } | ||||
| //         } else => { | ||||
| //             findInTree(val, val       | ||||
| //         } | ||||
| //     }; | ||||
| // } | ||||
| // // fn testWord(allocator: []u8, check: anytype) !bool { | ||||
| const linesList = std.MultiArrayList(cardRow); | ||||
| const cardRow = struct{ | ||||
|     first:  []const u8 = spacer, | ||||
|     second: []const u8 = spacer, | ||||
|     third:  []const u8 = spacer, | ||||
|     last:   []const u8 = "\n", | ||||
|     fn print(allocator: std.mem.Allocator, cards: []Card, allPrinted: *std.ArrayList(u8)) !void { | ||||
|         var gpa = std.heap.GeneralPurposeAllocator(.{}){}; | ||||
| 
 | ||||
| // // } | ||||
|         var lines = linesList{}; | ||||
|         defer lines.deinit(gpa.allocator()); | ||||
| 
 | ||||
|         for(cards, 0..) |cardObj, cardNo| { | ||||
|             const cardText = try card(allocator, cardObj); | ||||
|             for(cardText, 0..) |line, idx| { | ||||
|                 const paddedLine = try std.fmt.allocPrint(gpa.allocator(), lineFormatter, .{line}); | ||||
|                 const placeholder = if(idx < lines.items(.first).len) lines.get(idx) else cardRow{}; | ||||
|                 const new: cardRow = switch(cardNo) { | ||||
|                      0 => .{.first = paddedLine}, | ||||
|                      1 => .{.first = placeholder.first, .second = paddedLine}, | ||||
|                      2 => .{.first = placeholder.first, .second = placeholder.second, .third = paddedLine}, | ||||
|                      else => unreachable | ||||
|                 }; | ||||
|                 if(idx < lines.items(.first).len) { | ||||
|                     lines.set(idx, new); | ||||
|                 } else { | ||||
|                     try lines.append(gpa.allocator(), new); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|         // const numRows = @mod(allPrinted.items.len, cardHeight); | ||||
|         // if((numRows + cardHeight) >  | ||||
|         for(lines.items(.first), 0..) |_,idx| { | ||||
|                 _ = lines.get(idx); | ||||
|                 const line = lines.get(idx); | ||||
|                 // std.debug.print("{s}{s}{s}\n", .{line.first, line.second, line.third}); | ||||
|                 try allPrinted.appendSlice(line.first); | ||||
|                 try allPrinted.appendSlice(line.second); | ||||
|                 try allPrinted.appendSlice(line.third); | ||||
|                 try allPrinted.appendSlice(line.last); | ||||
|         } | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
| fn stringToBool(str: ?[]const u8) bool { | ||||
|     return std.mem.eql(u8, (str orelse "false"), "true"); | ||||
| } | ||||
|  |  | |||
|  | @ -0,0 +1,24 @@ | |||
| const std = @import("std"); | ||||
| 
 | ||||
| pub fn main() !void { | ||||
|     // Prints to stderr (it's a shortcut based on `std.io.getStdErr()`) | ||||
|     std.debug.print("All your {s} are belong to us.\n", .{"codebase"}); | ||||
| 
 | ||||
|     // stdout is for the actual output of your application, for example if you | ||||
|     // are implementing gzip, then only the compressed bytes should be sent to | ||||
|     // stdout, not any debugging messages. | ||||
|     const stdout_file = std.io.getStdOut().writer(); | ||||
|     var bw = std.io.bufferedWriter(stdout_file); | ||||
|     const stdout = bw.writer(); | ||||
| 
 | ||||
|     try stdout.print("Run `zig build test` to run the tests.\n", .{}); | ||||
| 
 | ||||
|     try bw.flush(); // don't forget to flush! | ||||
| } | ||||
| 
 | ||||
| test "simple test" { | ||||
|     var list = std.ArrayList(i32).init(std.testing.allocator); | ||||
|     defer list.deinit(); // try commenting this out and see if zig detects the memory leak! | ||||
|     try list.append(42); | ||||
|     try std.testing.expectEqual(@as(i32, 42), list.pop()); | ||||
| } | ||||
|  | @ -0,0 +1,10 @@ | |||
| const std = @import("std"); | ||||
| const testing = std.testing; | ||||
| 
 | ||||
| export fn add(a: i32, b: i32) i32 { | ||||
|     return a + b; | ||||
| } | ||||
| 
 | ||||
| test "basic add functionality" { | ||||
|     try testing.expect(add(3, 7) == 10); | ||||
| } | ||||
|  | @ -0,0 +1,36 @@ | |||
| const std = @import("std"); | ||||
| 
 | ||||
| const defaultString = "deef"; | ||||
| const structOfString = struct { | ||||
|     first:  []const u8 = defaultString, | ||||
|     last:   []const u8 = defaultString, | ||||
| }; | ||||
| 
 | ||||
| const listOfStruct = std.MultiArrayList(structOfString); | ||||
| 
 | ||||
| const testStrings = [_][]const u8{ | ||||
|     "foo", | ||||
|     "bar", | ||||
|     "baz", | ||||
|     "foz" | ||||
| }; | ||||
| 
 | ||||
| pub fn main() !void { | ||||
|     var gpa = std.heap.GeneralPurposeAllocator(.{}){}; | ||||
|      | ||||
|     var list = listOfStruct{}; | ||||
|     defer list.deinit(gpa.allocator()); | ||||
| 
 | ||||
|     for(testStrings, 0..) |line, idx| { | ||||
|         const paddedLine = try std.fmt.allocPrint(gpa.allocator(), "{s: ^10}", .{line}); | ||||
|         const new = switch(idx) { | ||||
|             0 => structOfString{.first = paddedLine}, | ||||
|             else => structOfString{}, | ||||
|         }; | ||||
|         std.debug.print("new: {s}\n", .{new.first}); | ||||
|         try list.append(gpa.allocator(), new); | ||||
|     } | ||||
|     for(list.items(.first), list.items(.last)) |first, last| { | ||||
|             std.debug.print("existing: {s}, {s}\n", .{first, last}); | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,84 @@ | |||
| 0 | ||||
| 915 27981523 1716085232847824128 06c37faa2c67ab9ff12c449adaef9a72 0 src/main.zig | ||||
| 43550 28374519 1716085224634631478 3ab943b2f5b3c1818a510df3f5ac703b 0 /home/lumenk/.cache/zig/p/1220e4669d29190ac809cd3a7726c20b6b49ea7425b7b89cab16d4dc3172016982bc/src/msgpack.zig | ||||
| 7737 27318955 1713603314000000000 7b4fdc315806ebffede643f9f98b8a50 1 std/std.zig | ||||
| 22535 27318953 1713603314000000000 e6ad8dc95efc97b95f3e7a7a376609ed 1 std/start.zig | ||||
| 114688 27318681 1713603314000000000 74fed2adb072da5aa83db559d086ae03 1 std/debug.zig | ||||
| 3029 27981506 1716078080330515222 d4f8021bcaf9bf87e5116fb2ee0918d2 0 /home/lumenk/.cache/zig/b/d4f8021bcaf9bf87e5116fb2ee0918d2/builtin.zig | ||||
| 32857 27318555 1713603314000000000 27f83ca4ce0566be7b92758ba27a8211 1 std/builtin.zig | ||||
| 89004 27318535 1713603314000000000 a1c652a6fa3579931aef32757683dd51 1 std/Target.zig | ||||
| 115070 27318533 1713603314000000000 fd7b7a619f52f1adcab5476bcd104cac 1 std/Target/x86.zig | ||||
| 78183 27318854 1713603314000000000 48254a64531cc6cc9f3b229c5da1c0f3 1 std/math.zig | ||||
| 41112 27318858 1713603314000000000 80e4c760c5fa7125765c8aaa802d9184 1 std/meta.zig | ||||
| 11091 27318511 1713603314000000000 3b4e837c9f6b3b4fbb5b3b95148e553c 1 std/SemanticVersion.zig | ||||
| 61526 27318694 1713603314000000000 00003d31510dec096134200d0d6ceecc 1 std/elf.zig | ||||
| 12295 27318940 1713603314000000000 603da58dea31db92bad2b93349f088c2 1 std/os.zig | ||||
| 207301 27318889 1713603314000000000 c6c89a113e8da2263ca7989b2cdf44a3 1 std/os/linux.zig | ||||
| 12494 27318885 1713603314000000000 e9933b000fa707703dab8f2fe68b002a 1 std/os/linux/tls.zig | ||||
| 292924 27318944 1713603314000000000 1db97817ddf9d5b1d7ab471e15a95db8 1 std/posix.zig | ||||
| 25504 27318771 1713603314000000000 0d380feec771d277d38493250815b334 1 std/io.zig | ||||
| 35896 27318716 1713603314000000000 fe6ca890c29b51018c25e7269898a5f5 1 std/fs.zig | ||||
| 63631 27318711 1713603314000000000 8ad62418ac37873a457da68a3e6d1cbd 1 std/fs/File.zig | ||||
| 1299 27318758 1713603314000000000 9ea5eaf4f2d36e2273f3ecec7f813b61 1 std/io/buffered_writer.zig | ||||
| 2259 27318753 1713603314000000000 d0332ba9399d02f163b9033b979acb28 1 std/io/Writer.zig | ||||
| 8365 27318788 1713603314000000000 1e96c9d448e9ae1d3162881bf730b07e 1 std/log.zig | ||||
| 176517 27318856 1713603314000000000 fd9bed600bb45bc220c548e689e7ebf9 1 std/mem.zig | ||||
| 13319 27318927 1713603314000000000 0ecb167cdc15eca0651fa6c248c99804 1 std/os/wasi.zig | ||||
| 12352 27318680 1713603314000000000 85ba4034d104ed83a45a1bb6ea2f588a 1 std/crypto.zig | ||||
| 105663 27318708 1713603314000000000 8d4becc343bcd3adac05a9906326c6df 1 std/fmt.zig | ||||
| 6209 27318676 1713603314000000000 89d4ae344badeeee363daef10bc5ad3f 1 std/crypto/tlcsprng.zig | ||||
| 54025 27318544 1713603314000000000 8c07809522884083ee986e616b3dbe11 1 std/Thread.zig | ||||
| 10030 27318538 1713603314000000000 6ec4900de2fa66c512d3a1a8b197182b 1 std/Thread/Mutex.zig | ||||
| 19056 27318549 1713603314000000000 fbe5a337296572a6d62cbde681c465ea 1 std/atomic.zig | ||||
| 13626 27318855 1713603314000000000 98c52b2fa05c32ad77f1743a5f3383ee 1 std/mem/Allocator.zig | ||||
| 90072 27318731 1713603314000000000 bffdf0affa202d9bafbc94cdc1368f10 1 std/hash_map.zig | ||||
| 5237 27318770 1713603314000000000 1ffe030ee2cb56e3f4f0730c76a43a35 1 std/io/tty.zig | ||||
| 112733 27318692 1713603314000000000 6a3c4b87759cf30d9e7a65625e6143a3 1 std/dwarf.zig | ||||
| 55565 27318695 1713603314000000000 70d775478d92cce6032146b76e8b8314 1 std/enums.zig | ||||
| 87217 27318547 1713603314000000000 d82200bd8e9f05406e233eef46e48149 1 std/array_list.zig | ||||
| 114248 27318546 1713603314000000000 7aa5a3d5d7c75f7861328581549e6a5d 1 std/array_hash_map.zig | ||||
| 38005 27318859 1713603314000000000 2df15a06c9368a128b68d617837153ef 1 std/multi_array_list.zig | ||||
| 111536 27318710 1713603314000000000 04f568f3193c7bb5986efc4ec52bfd91 1 std/fs/Dir.zig | ||||
| 1730 27318730 1713603314000000000 36cb1b0b5e0bb7d10f9b200b0a751743 1 std/hash.zig | ||||
| 19864 27318724 1713603314000000000 e3e11ead12f4f8bc5a4a39618951d77d 1 std/hash/crc.zig | ||||
| 7844 27318722 1713603314000000000 dae49ec27edbdf6d4a70a92a1d8f6614 1 std/hash/crc/impl.zig | ||||
| 6449 27318764 1713603314000000000 3bcfe7862cea857ee79939a098991ad5 1 std/io/fixed_buffer_stream.zig | ||||
| 14434 27318752 1713603314000000000 2655b33c088dd930683d9eb843eaceb4 1 std/io/Reader.zig | ||||
| 2057 27318608 1713603314000000000 a778ec13ef93e0ace847f52f066441fd 1 std/compress.zig | ||||
| 3736 27318600 1713603314000000000 a5c9eee5eaf5943e22c8a03fac3f2841 1 std/compress/zlib.zig | ||||
| 23371 27318585 1713603314000000000 9114b9a4ebd2dc71d31987c5fc13b8ba 1 std/compress/flate/inflate.zig | ||||
| 7460 27318581 1713603314000000000 1c1d1c1c4e61c64090b7ace80a4c2dab 1 std/compress/flate/container.zig | ||||
| 16625 27318577 1713603314000000000 8ba4aa19f03596c0d0eb18045a7331e8 1 std/compress/flate/bit_reader.zig | ||||
| 7434 27318573 1713603314000000000 a6347ffd91bdf7b166947d627e9f38c5 1 std/compress/flate/CircularBuffer.zig | ||||
| 3519 27318718 1713603314000000000 4e3c7d701979e5945ab9f85fed59a579 1 std/hash/adler.zig | ||||
| 10966 27318583 1713603314000000000 e24401bc06abbf873844211e243f0871 1 std/compress/flate/huffman_decoder.zig | ||||
| 77139 27318713 1713603314000000000 6ed68741d6922f90c45c6c388b6cdd8c 1 std/fs/path.zig | ||||
| 1399 27318685 1713603314000000000 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig | ||||
| 3900 27318688 1713603314000000000 b5711d1b73e43c5aaea25647f88f9369 1 std/dwarf/TAG.zig | ||||
| 7395 27318682 1713603314000000000 0736a520f4793791a2cfc257bfcfd3b6 1 std/dwarf/AT.zig | ||||
| 643 27318684 1713603314000000000 6f6a9e4e1602df062ad02179710971c4 1 std/dwarf/EH.zig | ||||
| 1884 27318843 1713603314000000000 4e39bcecc218a8cefd7304859e028778 1 std/math/log2.zig | ||||
| 12563 27318888 1713603314000000000 edca846565ef855c728e7372feed8676 1 std/os/linux/x86_64.zig | ||||
| 87942 27318882 1713603314000000000 2082c17ae271b44b3575bcdb700a983d 1 std/os/linux/syscalls.zig | ||||
| 31762 27318742 1713603314000000000 39822c5f2ad237650217b35e72989b75 1 std/heap.zig | ||||
| 12747 27318736 1713603314000000000 0c84990d94912da71f88ccdd844ff032 1 std/heap/arena_allocator.zig | ||||
| 14239 27318787 1713603314000000000 a69e9fd3810cdd1601c26dd47210af71 1 std/linked_list.zig | ||||
| 3726 27318732 1713603314000000000 d141686f91270c1ac884745688b966f5 1 std/heap/PageAllocator.zig | ||||
| 65714 27318947 1713603314000000000 ce544a97419b31ef988f4ec4c99eb39a 1 std/process.zig | ||||
| 29773 27318952 1713603314000000000 6e96f5117f2db4b1f67515385b4cbc04 1 std/sort.zig | ||||
| 51714 27318950 1713603314000000000 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig | ||||
| 17014 27318693 1713603314000000000 b0e0b21898d4115f9772e9cddc07b2b7 1 std/dynamic_library.zig | ||||
| 80096 27318966 1713603314000000000 dcae88764146b76769ce525b262e7a9a 1 std/unicode.zig | ||||
| 23315 27318949 1713603314000000000 ffbdbe729df38f396c8bfb00dd14e4d7 1 std/simd.zig | ||||
| 17851 27318786 1713603314000000000 62510503fe6b45659189d32c19c9dc45 1 std/leb128.zig | ||||
| 10710 27318951 1713603314000000000 f2973ab2be6115a15cf6c75a2be36ad3 1 std/sort/pdq.zig | ||||
| 10091 27318969 1713603314000000000 616a2d791eb8d67329f8198701e2bbad 1 std/valgrind.zig | ||||
| 19546 27318689 1713603314000000000 eeb537ce254d8635c5876f3cb23ba2ab 1 std/dwarf/abi.zig | ||||
| 26403 27318690 1713603314000000000 17cfec6893f0195cf3f2128e131aebbd 1 std/dwarf/call_frame.zig | ||||
| 71838 27318691 1713603314000000000 472566d679006f02ce08a8e6d3ca5840 1 std/dwarf/expressions.zig | ||||
| 43084 27318537 1713603314000000000 a67e9f409c649ae15d47dcc9582247f0 1 std/Thread/Futex.zig | ||||
| 13678 27318962 1713603314000000000 acfd077e4b0672dfb9bc1907ad8440ef 1 std/time.zig | ||||
| 1618 27318580 1713603314000000000 60e22c8a23680b34b51d27b486811807 1 std/compress/flate/consts.zig | ||||
| 13375 27318576 1713603314000000000 239244362ca7a3d92e32a4518ccda927 1 std/compress/flate/Token.zig | ||||
| 8372 27318728 1713603314000000000 d48498b32f349820311bbf338ae1aae5 1 std/hash/wyhash.zig | ||||
| 5693 27318687 1713603314000000000 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig | ||||
|  | @ -0,0 +1,81 @@ | |||
| 0 | ||||
| 191 27981524 1716085232847824128 7e2860f081407d3d9f477662f7b2cd11 0 src/root.zig | ||||
| 7737 27318955 1713603314000000000 7b4fdc315806ebffede643f9f98b8a50 1 std/std.zig | ||||
| 22535 27318953 1713603314000000000 e6ad8dc95efc97b95f3e7a7a376609ed 1 std/start.zig | ||||
| 114688 27318681 1713603314000000000 74fed2adb072da5aa83db559d086ae03 1 std/debug.zig | ||||
| 3029 0 0 20a88d6f00a00f711831b6b38a5be557 0 /home/lumenk/.cache/zig/b/20a88d6f00a00f711831b6b38a5be557/builtin.zig | ||||
| 32857 27318555 1713603314000000000 27f83ca4ce0566be7b92758ba27a8211 1 std/builtin.zig | ||||
| 89004 27318535 1713603314000000000 a1c652a6fa3579931aef32757683dd51 1 std/Target.zig | ||||
| 115070 27318533 1713603314000000000 fd7b7a619f52f1adcab5476bcd104cac 1 std/Target/x86.zig | ||||
| 78183 27318854 1713603314000000000 48254a64531cc6cc9f3b229c5da1c0f3 1 std/math.zig | ||||
| 41112 27318858 1713603314000000000 80e4c760c5fa7125765c8aaa802d9184 1 std/meta.zig | ||||
| 11091 27318511 1713603314000000000 3b4e837c9f6b3b4fbb5b3b95148e553c 1 std/SemanticVersion.zig | ||||
| 12295 27318940 1713603314000000000 603da58dea31db92bad2b93349f088c2 1 std/os.zig | ||||
| 13319 27318927 1713603314000000000 0ecb167cdc15eca0651fa6c248c99804 1 std/os/wasi.zig | ||||
| 8365 27318788 1713603314000000000 1e96c9d448e9ae1d3162881bf730b07e 1 std/log.zig | ||||
| 12352 27318680 1713603314000000000 85ba4034d104ed83a45a1bb6ea2f588a 1 std/crypto.zig | ||||
| 35896 27318716 1713603314000000000 fe6ca890c29b51018c25e7269898a5f5 1 std/fs.zig | ||||
| 105663 27318708 1713603314000000000 8d4becc343bcd3adac05a9906326c6df 1 std/fmt.zig | ||||
| 6209 27318676 1713603314000000000 89d4ae344badeeee363daef10bc5ad3f 1 std/crypto/tlcsprng.zig | ||||
| 19056 27318549 1713603314000000000 fbe5a337296572a6d62cbde681c465ea 1 std/atomic.zig | ||||
| 54025 27318544 1713603314000000000 8c07809522884083ee986e616b3dbe11 1 std/Thread.zig | ||||
| 10030 27318538 1713603314000000000 6ec4900de2fa66c512d3a1a8b197182b 1 std/Thread/Mutex.zig | ||||
| 25504 27318771 1713603314000000000 0d380feec771d277d38493250815b334 1 std/io.zig | ||||
| 63631 27318711 1713603314000000000 8ad62418ac37873a457da68a3e6d1cbd 1 std/fs/File.zig | ||||
| 292924 27318944 1713603314000000000 1db97817ddf9d5b1d7ab471e15a95db8 1 std/posix.zig | ||||
| 207301 27318889 1713603314000000000 c6c89a113e8da2263ca7989b2cdf44a3 1 std/os/linux.zig | ||||
| 2259 27318753 1713603314000000000 d0332ba9399d02f163b9033b979acb28 1 std/io/Writer.zig | ||||
| 176517 27318856 1713603314000000000 fd9bed600bb45bc220c548e689e7ebf9 1 std/mem.zig | ||||
| 13626 27318855 1713603314000000000 98c52b2fa05c32ad77f1743a5f3383ee 1 std/mem/Allocator.zig | ||||
| 90072 27318731 1713603314000000000 bffdf0affa202d9bafbc94cdc1368f10 1 std/hash_map.zig | ||||
| 5237 27318770 1713603314000000000 1ffe030ee2cb56e3f4f0730c76a43a35 1 std/io/tty.zig | ||||
| 112733 27318692 1713603314000000000 6a3c4b87759cf30d9e7a65625e6143a3 1 std/dwarf.zig | ||||
| 55565 27318695 1713603314000000000 70d775478d92cce6032146b76e8b8314 1 std/enums.zig | ||||
| 87217 27318547 1713603314000000000 d82200bd8e9f05406e233eef46e48149 1 std/array_list.zig | ||||
| 114248 27318546 1713603314000000000 7aa5a3d5d7c75f7861328581549e6a5d 1 std/array_hash_map.zig | ||||
| 38005 27318859 1713603314000000000 2df15a06c9368a128b68d617837153ef 1 std/multi_array_list.zig | ||||
| 61526 27318694 1713603314000000000 00003d31510dec096134200d0d6ceecc 1 std/elf.zig | ||||
| 111536 27318710 1713603314000000000 04f568f3193c7bb5986efc4ec52bfd91 1 std/fs/Dir.zig | ||||
| 1730 27318730 1713603314000000000 36cb1b0b5e0bb7d10f9b200b0a751743 1 std/hash.zig | ||||
| 19864 27318724 1713603314000000000 e3e11ead12f4f8bc5a4a39618951d77d 1 std/hash/crc.zig | ||||
| 7844 27318722 1713603314000000000 dae49ec27edbdf6d4a70a92a1d8f6614 1 std/hash/crc/impl.zig | ||||
| 6449 27318764 1713603314000000000 3bcfe7862cea857ee79939a098991ad5 1 std/io/fixed_buffer_stream.zig | ||||
| 14434 27318752 1713603314000000000 2655b33c088dd930683d9eb843eaceb4 1 std/io/Reader.zig | ||||
| 2057 27318608 1713603314000000000 a778ec13ef93e0ace847f52f066441fd 1 std/compress.zig | ||||
| 3736 27318600 1713603314000000000 a5c9eee5eaf5943e22c8a03fac3f2841 1 std/compress/zlib.zig | ||||
| 23371 27318585 1713603314000000000 9114b9a4ebd2dc71d31987c5fc13b8ba 1 std/compress/flate/inflate.zig | ||||
| 7460 27318581 1713603314000000000 1c1d1c1c4e61c64090b7ace80a4c2dab 1 std/compress/flate/container.zig | ||||
| 16625 27318577 1713603314000000000 8ba4aa19f03596c0d0eb18045a7331e8 1 std/compress/flate/bit_reader.zig | ||||
| 7434 27318573 1713603314000000000 a6347ffd91bdf7b166947d627e9f38c5 1 std/compress/flate/CircularBuffer.zig | ||||
| 3519 27318718 1713603314000000000 4e3c7d701979e5945ab9f85fed59a579 1 std/hash/adler.zig | ||||
| 10966 27318583 1713603314000000000 e24401bc06abbf873844211e243f0871 1 std/compress/flate/huffman_decoder.zig | ||||
| 77139 27318713 1713603314000000000 6ed68741d6922f90c45c6c388b6cdd8c 1 std/fs/path.zig | ||||
| 1399 27318685 1713603314000000000 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig | ||||
| 3900 27318688 1713603314000000000 b5711d1b73e43c5aaea25647f88f9369 1 std/dwarf/TAG.zig | ||||
| 7395 27318682 1713603314000000000 0736a520f4793791a2cfc257bfcfd3b6 1 std/dwarf/AT.zig | ||||
| 643 27318684 1713603314000000000 6f6a9e4e1602df062ad02179710971c4 1 std/dwarf/EH.zig | ||||
| 1884 27318843 1713603314000000000 4e39bcecc218a8cefd7304859e028778 1 std/math/log2.zig | ||||
| 12563 27318888 1713603314000000000 edca846565ef855c728e7372feed8676 1 std/os/linux/x86_64.zig | ||||
| 19546 27318689 1713603314000000000 eeb537ce254d8635c5876f3cb23ba2ab 1 std/dwarf/abi.zig | ||||
| 26403 27318690 1713603314000000000 17cfec6893f0195cf3f2128e131aebbd 1 std/dwarf/call_frame.zig | ||||
| 71838 27318691 1713603314000000000 472566d679006f02ce08a8e6d3ca5840 1 std/dwarf/expressions.zig | ||||
| 43084 27318537 1713603314000000000 a67e9f409c649ae15d47dcc9582247f0 1 std/Thread/Futex.zig | ||||
| 80096 27318966 1713603314000000000 dcae88764146b76769ce525b262e7a9a 1 std/unicode.zig | ||||
| 23315 27318949 1713603314000000000 ffbdbe729df38f396c8bfb00dd14e4d7 1 std/simd.zig | ||||
| 87942 27318882 1713603314000000000 2082c17ae271b44b3575bcdb700a983d 1 std/os/linux/syscalls.zig | ||||
| 31762 27318742 1713603314000000000 39822c5f2ad237650217b35e72989b75 1 std/heap.zig | ||||
| 12747 27318736 1713603314000000000 0c84990d94912da71f88ccdd844ff032 1 std/heap/arena_allocator.zig | ||||
| 14239 27318787 1713603314000000000 a69e9fd3810cdd1601c26dd47210af71 1 std/linked_list.zig | ||||
| 3726 27318732 1713603314000000000 d141686f91270c1ac884745688b966f5 1 std/heap/PageAllocator.zig | ||||
| 65714 27318947 1713603314000000000 ce544a97419b31ef988f4ec4c99eb39a 1 std/process.zig | ||||
| 29773 27318952 1713603314000000000 6e96f5117f2db4b1f67515385b4cbc04 1 std/sort.zig | ||||
| 51714 27318950 1713603314000000000 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig | ||||
| 17014 27318693 1713603314000000000 b0e0b21898d4115f9772e9cddc07b2b7 1 std/dynamic_library.zig | ||||
| 17851 27318786 1713603314000000000 62510503fe6b45659189d32c19c9dc45 1 std/leb128.zig | ||||
| 10710 27318951 1713603314000000000 f2973ab2be6115a15cf6c75a2be36ad3 1 std/sort/pdq.zig | ||||
| 10091 27318969 1713603314000000000 616a2d791eb8d67329f8198701e2bbad 1 std/valgrind.zig | ||||
| 13678 27318962 1713603314000000000 acfd077e4b0672dfb9bc1907ad8440ef 1 std/time.zig | ||||
| 1618 27318580 1713603314000000000 60e22c8a23680b34b51d27b486811807 1 std/compress/flate/consts.zig | ||||
| 13375 27318576 1713603314000000000 239244362ca7a3d92e32a4518ccda927 1 std/compress/flate/Token.zig | ||||
| 8372 27318728 1713603314000000000 d48498b32f349820311bbf338ae1aae5 1 std/hash/wyhash.zig | ||||
| 5693 27318687 1713603314000000000 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig | ||||
|  | @ -0,0 +1,154 @@ | |||
| 0 | ||||
| 52139 27294327 1713603314000000000 b6f8b702c35886de1586b7879c9d262f 1 compiler/build_runner.zig | ||||
| 4016 27981525 1716085399224984524 e96a76cfa1c3101fb0854707f45d383c 0 /home/lumenk/Documents/code/zig/proxy-print/build.zig | ||||
| 629 0 0 34a5b8ac3b722a91568b48fc06ed7531 2 o/94ff9ce473aa29fd9171e5eaf6ba8bc6/dependencies.zig | ||||
| 855 28374512 1716085224634631478 328b673e34e70eae621202368ffa568f 0 /home/lumenk/.cache/zig/p/1220e4669d29190ac809cd3a7726c20b6b49ea7425b7b89cab16d4dc3172016982bc/build.zig | ||||
| 7737 27318955 1713603314000000000 7b4fdc315806ebffede643f9f98b8a50 1 std/std.zig | ||||
| 22535 27318953 1713603314000000000 e6ad8dc95efc97b95f3e7a7a376609ed 1 std/start.zig | ||||
| 114688 27318681 1713603314000000000 74fed2adb072da5aa83db559d086ae03 1 std/debug.zig | ||||
| 3029 27981506 1716078080330515222 d4f8021bcaf9bf87e5116fb2ee0918d2 0 /home/lumenk/.cache/zig/b/d4f8021bcaf9bf87e5116fb2ee0918d2/builtin.zig | ||||
| 32857 27318555 1713603314000000000 27f83ca4ce0566be7b92758ba27a8211 1 std/builtin.zig | ||||
| 89004 27318535 1713603314000000000 a1c652a6fa3579931aef32757683dd51 1 std/Target.zig | ||||
| 115070 27318533 1713603314000000000 fd7b7a619f52f1adcab5476bcd104cac 1 std/Target/x86.zig | ||||
| 78183 27318854 1713603314000000000 48254a64531cc6cc9f3b229c5da1c0f3 1 std/math.zig | ||||
| 41112 27318858 1713603314000000000 80e4c760c5fa7125765c8aaa802d9184 1 std/meta.zig | ||||
| 11091 27318511 1713603314000000000 3b4e837c9f6b3b4fbb5b3b95148e553c 1 std/SemanticVersion.zig | ||||
| 61526 27318694 1713603314000000000 00003d31510dec096134200d0d6ceecc 1 std/elf.zig | ||||
| 12295 27318940 1713603314000000000 603da58dea31db92bad2b93349f088c2 1 std/os.zig | ||||
| 207301 27318889 1713603314000000000 c6c89a113e8da2263ca7989b2cdf44a3 1 std/os/linux.zig | ||||
| 12494 27318885 1713603314000000000 e9933b000fa707703dab8f2fe68b002a 1 std/os/linux/tls.zig | ||||
| 292924 27318944 1713603314000000000 1db97817ddf9d5b1d7ab471e15a95db8 1 std/posix.zig | ||||
| 31762 27318742 1713603314000000000 39822c5f2ad237650217b35e72989b75 1 std/heap.zig | ||||
| 12747 27318736 1713603314000000000 0c84990d94912da71f88ccdd844ff032 1 std/heap/arena_allocator.zig | ||||
| 176517 27318856 1713603314000000000 fd9bed600bb45bc220c548e689e7ebf9 1 std/mem.zig | ||||
| 13626 27318855 1713603314000000000 98c52b2fa05c32ad77f1743a5f3383ee 1 std/mem/Allocator.zig | ||||
| 14239 27318787 1713603314000000000 a69e9fd3810cdd1601c26dd47210af71 1 std/linked_list.zig | ||||
| 3726 27318732 1713603314000000000 d141686f91270c1ac884745688b966f5 1 std/heap/PageAllocator.zig | ||||
| 1301 27318733 1713603314000000000 3db24c00baa9c03a40bfeaa152e28593 1 std/heap/ThreadSafeAllocator.zig | ||||
| 54025 27318544 1713603314000000000 8c07809522884083ee986e616b3dbe11 1 std/Thread.zig | ||||
| 10030 27318538 1713603314000000000 6ec4900de2fa66c512d3a1a8b197182b 1 std/Thread/Mutex.zig | ||||
| 19056 27318549 1713603314000000000 fbe5a337296572a6d62cbde681c465ea 1 std/atomic.zig | ||||
| 65714 27318947 1713603314000000000 ce544a97419b31ef988f4ec4c99eb39a 1 std/process.zig | ||||
| 87217 27318547 1713603314000000000 d82200bd8e9f05406e233eef46e48149 1 std/array_list.zig | ||||
| 94169 27318494 1713603314000000000 fddb6fe97673cb56a45801382be6cc40 1 std/Build.zig | ||||
| 47439 27318477 1713603314000000000 c6a86620d14b9e41af3f13862bda0acb 1 std/Build/Cache.zig | ||||
| 2248 27318475 1713603314000000000 95a1bb668e0c39f345c83920bac861b7 1 std/Build/Cache/Directory.zig | ||||
| 35896 27318716 1713603314000000000 fe6ca890c29b51018c25e7269898a5f5 1 std/fs.zig | ||||
| 111536 27318710 1713603314000000000 04f568f3193c7bb5986efc4ec52bfd91 1 std/fs/Dir.zig | ||||
| 77139 27318713 1713603314000000000 6ed68741d6922f90c45c6c388b6cdd8c 1 std/fs/path.zig | ||||
| 63631 27318711 1713603314000000000 8ad62418ac37873a457da68a3e6d1cbd 1 std/fs/File.zig | ||||
| 12563 27318888 1713603314000000000 edca846565ef855c728e7372feed8676 1 std/os/linux/x86_64.zig | ||||
| 114248 27318546 1713603314000000000 7aa5a3d5d7c75f7861328581549e6a5d 1 std/array_hash_map.zig | ||||
| 38005 27318859 1713603314000000000 2df15a06c9368a128b68d617837153ef 1 std/multi_array_list.zig | ||||
| 12352 27318680 1713603314000000000 85ba4034d104ed83a45a1bb6ea2f588a 1 std/crypto.zig | ||||
| 18622 27318674 1713603314000000000 05742583e9b394547e0631c84131938c 1 std/crypto/siphash.zig | ||||
| 90072 27318731 1713603314000000000 bffdf0affa202d9bafbc94cdc1368f10 1 std/hash_map.zig | ||||
| 26882 27318512 1713603314000000000 5b9ff543d20a09f8c07cb235a7f3c28e 1 std/Target/Query.zig | ||||
| 45642 27319001 1713603314000000000 1a3ac893968caf40f15a61a3e4020198 1 std/zig.zig | ||||
| 50411 27318998 1713603314000000000 82486579bb5aad521f09f0d3d65a8cb2 1 std/zig/system.zig | ||||
| 19326 27318493 1713603314000000000 766135bc25af9bff89d8013842b0a3a1 1 std/Build/Step.zig | ||||
| 27082 27318478 1713603314000000000 bdca4aa055041af2bc0ef6b1f83da1e6 1 std/Build/Module.zig | ||||
| 15691 27318492 1713603314000000000 6ec561987815837c4b1fcbb12e9ed5a9 1 std/Build/Step/WriteFile.zig | ||||
| 16345 27318496 1713603314000000000 07047c90cfdb25f62565ada1af0fb2ee 1 std/Progress.zig | ||||
| 13678 27318962 1713603314000000000 acfd077e4b0672dfb9bc1907ad8440ef 1 std/time.zig | ||||
| 29047 27318976 1713603314000000000 5f3981d473c44fc809036b5e536a694f 1 std/zig/ErrorBundle.zig | ||||
| 75832 27318481 1713603314000000000 a5ae9e18da05cc8d84a2f6b583386a1e 1 std/Build/Step/Compile.zig | ||||
| 112733 27318692 1713603314000000000 6a3c4b87759cf30d9e7a65625e6143a3 1 std/dwarf.zig | ||||
| 31602 27318482 1713603314000000000 0b153dee69d22e607a2074625ef81a60 1 std/Build/Step/ConfigHeader.zig | ||||
| 1884 27318843 1713603314000000000 4e39bcecc218a8cefd7304859e028778 1 std/math/log2.zig | ||||
| 4147 27318539 1713603314000000000 c733287dced3af877a263cad44139c4b 1 std/Thread/Pool.zig | ||||
| 8365 27318788 1713603314000000000 1e96c9d448e9ae1d3162881bf730b07e 1 std/log.zig | ||||
| 105663 27318708 1713603314000000000 8d4becc343bcd3adac05a9906326c6df 1 std/fmt.zig | ||||
| 25504 27318771 1713603314000000000 0d380feec771d277d38493250815b334 1 std/io.zig | ||||
| 5237 27318770 1713603314000000000 1ffe030ee2cb56e3f4f0730c76a43a35 1 std/io/tty.zig | ||||
| 80096 27318966 1713603314000000000 dcae88764146b76769ce525b262e7a9a 1 std/unicode.zig | ||||
| 17590 27318509 1713603314000000000 5ddd4d07802b9f332a306c207663eea0 1 std/Random.zig | ||||
| 3177 27318505 1713603314000000000 ece4176296c0d5a4735a0e13195d3e89 1 std/Random/Xoshiro256.zig | ||||
| 23359 27318536 1713603314000000000 55e7c53750c5f84af61f7e61406bc0f0 1 std/Thread/Condition.zig | ||||
| 1796 27318543 1713603314000000000 43f2cf40b5fd32903bf18a54ea66fc91 1 std/Thread/WaitGroup.zig | ||||
| 9239 27318540 1713603314000000000 d703f6a7af8c150d259a587850decd1f 1 std/Thread/ResetEvent.zig | ||||
| 2259 27318753 1713603314000000000 d0332ba9399d02f163b9033b979acb28 1 std/io/Writer.zig | ||||
| 13319 27318927 1713603314000000000 0ecb167cdc15eca0651fa6c248c99804 1 std/os/wasi.zig | ||||
| 6209 27318676 1713603314000000000 89d4ae344badeeee363daef10bc5ad3f 1 std/crypto/tlcsprng.zig | ||||
| 29773 27318952 1713603314000000000 6e96f5117f2db4b1f67515385b4cbc04 1 std/sort.zig | ||||
| 51714 27318950 1713603314000000000 eb8790d984ce4a6ddd6376d877c85ff1 1 std/sort/block.zig | ||||
| 14616 27318548 1713603314000000000 0fed3eb789529104667fd82e81a9af62 1 std/ascii.zig | ||||
| 75370 27318516 1713603314000000000 30731038480465fdb69c8c513ebbbcb7 1 std/Target/arm.zig | ||||
| 9668 27318609 1713603314000000000 50cd66d0ffbb1cf4482a14a8dfa96197 1 std/comptime_string_map.zig | ||||
| 10710 27318951 1713603314000000000 f2973ab2be6115a15cf6c75a2be36ad3 1 std/sort/pdq.zig | ||||
| 7643 27318848 1713603314000000000 03910049e32f401cd3296cc1352aecb4 1 std/math/powi.zig | ||||
| 55565 27318695 1713603314000000000 70d775478d92cce6032146b76e8b8314 1 std/enums.zig | ||||
| 1730 27318730 1713603314000000000 36cb1b0b5e0bb7d10f9b200b0a751743 1 std/hash.zig | ||||
| 19864 27318724 1713603314000000000 e3e11ead12f4f8bc5a4a39618951d77d 1 std/hash/crc.zig | ||||
| 7844 27318722 1713603314000000000 dae49ec27edbdf6d4a70a92a1d8f6614 1 std/hash/crc/impl.zig | ||||
| 6449 27318764 1713603314000000000 3bcfe7862cea857ee79939a098991ad5 1 std/io/fixed_buffer_stream.zig | ||||
| 14434 27318752 1713603314000000000 2655b33c088dd930683d9eb843eaceb4 1 std/io/Reader.zig | ||||
| 2057 27318608 1713603314000000000 a778ec13ef93e0ace847f52f066441fd 1 std/compress.zig | ||||
| 3736 27318600 1713603314000000000 a5c9eee5eaf5943e22c8a03fac3f2841 1 std/compress/zlib.zig | ||||
| 23371 27318585 1713603314000000000 9114b9a4ebd2dc71d31987c5fc13b8ba 1 std/compress/flate/inflate.zig | ||||
| 7460 27318581 1713603314000000000 1c1d1c1c4e61c64090b7ace80a4c2dab 1 std/compress/flate/container.zig | ||||
| 16625 27318577 1713603314000000000 8ba4aa19f03596c0d0eb18045a7331e8 1 std/compress/flate/bit_reader.zig | ||||
| 7434 27318573 1713603314000000000 a6347ffd91bdf7b166947d627e9f38c5 1 std/compress/flate/CircularBuffer.zig | ||||
| 3519 27318718 1713603314000000000 4e3c7d701979e5945ab9f85fed59a579 1 std/hash/adler.zig | ||||
| 10966 27318583 1713603314000000000 e24401bc06abbf873844211e243f0871 1 std/compress/flate/huffman_decoder.zig | ||||
| 1399 27318685 1713603314000000000 40a7d4ac60d12c6e9ca294acaed35474 1 std/dwarf/FORM.zig | ||||
| 3900 27318688 1713603314000000000 b5711d1b73e43c5aaea25647f88f9369 1 std/dwarf/TAG.zig | ||||
| 7395 27318682 1713603314000000000 0736a520f4793791a2cfc257bfcfd3b6 1 std/dwarf/AT.zig | ||||
| 643 27318684 1713603314000000000 6f6a9e4e1602df062ad02179710971c4 1 std/dwarf/EH.zig | ||||
| 87942 27318882 1713603314000000000 2082c17ae271b44b3575bcdb700a983d 1 std/os/linux/syscalls.zig | ||||
| 21032 27318997 1713603314000000000 428db229fc4369a2f36bf0c2fc759942 1 std/zig/system/x86.zig | ||||
| 1273 27318515 1713603314000000000 92589c8e708010b66287cffb30b3644a 1 std/Target/arc.zig | ||||
| 69762 27318517 1713603314000000000 d6af57434a87d01c08b32d2bfe25fdaa 1 std/Target/avr.zig | ||||
| 77144 27318519 1713603314000000000 c690addfa0ddc66f16428c3843909a46 1 std/Target/csky.zig | ||||
| 16084 27318520 1713603314000000000 ca6f1a2a9e6e8fa60a8331d7c5f5ce34 1 std/Target/hexagon.zig | ||||
| 7121 27318522 1713603314000000000 d75880c23fe47c4e74168b752266aab9 1 std/Target/m68k.zig | ||||
| 2220 27318524 1713603314000000000 d6af7e91115ce15de6cc6fa6b85ad607 1 std/Target/msp430.zig | ||||
| 72388 27318514 1713603314000000000 b592b5b1741bb6ca4b4bd7df1b4ee0aa 1 std/Target/amdgpu.zig | ||||
| 25661 27318528 1713603314000000000 6160b24d02ef2886240a2714d944d75f 1 std/Target/s390x.zig | ||||
| 1273 27318534 1713603314000000000 1becbd14309ffd333ba9f93137feeab0 1 std/Target/xtensa.zig | ||||
| 1248 27318531 1713603314000000000 b8612e45820413ede9faa05b84c38ef8 1 std/Target/ve.zig | ||||
| 82799 27318513 1713603314000000000 fdca0833003d54262db364549149528b 1 std/Target/aarch64.zig | ||||
| 2248 27318518 1713603314000000000 3d1e4a68e841dcca2978d00e3152786a 1 std/Target/bpf.zig | ||||
| 4600 27318521 1713603314000000000 e904a450b07c1d22dfac25391c3dcf8e 1 std/Target/loongarch.zig | ||||
| 16066 27318523 1713603314000000000 6e5fb373b9f2ae19c60dbed74eb241dc 1 std/Target/mips.zig | ||||
| 34231 27318526 1713603314000000000 de0fb7249581c631bb7bc95aced67759 1 std/Target/powerpc.zig | ||||
| 44356 27318527 1713603314000000000 e4a208a94d7a59c2053efe94036e5170 1 std/Target/riscv.zig | ||||
| 13359 27318529 1713603314000000000 f3523531a5151972318dd7f02ec8f6c1 1 std/Target/sparc.zig | ||||
| 77930 27318530 1713603314000000000 0611f617b9ec2d1a8e22aa44c1fe7363 1 std/Target/spirv.zig | ||||
| 12520 27318525 1713603314000000000 3085921dd9c1187ee9feccc950c03256 1 std/Target/nvptx.zig | ||||
| 4295 27318532 1713603314000000000 f907cdf8a3f4981470d02f3eb835a744 1 std/Target/wasm.zig | ||||
| 19546 27318689 1713603314000000000 eeb537ce254d8635c5876f3cb23ba2ab 1 std/dwarf/abi.zig | ||||
| 26403 27318690 1713603314000000000 17cfec6893f0195cf3f2128e131aebbd 1 std/dwarf/call_frame.zig | ||||
| 71838 27318691 1713603314000000000 472566d679006f02ce08a8e6d3ca5840 1 std/dwarf/expressions.zig | ||||
| 10091 27318969 1713603314000000000 616a2d791eb8d67329f8198701e2bbad 1 std/valgrind.zig | ||||
| 23315 27318949 1713603314000000000 ffbdbe729df38f396c8bfb00dd14e4d7 1 std/simd.zig | ||||
| 52849 27318490 1713603314000000000 4b550e83c1d4e676002cd0b0a120334c 1 std/Build/Step/Run.zig | ||||
| 62647 27318571 1713603314000000000 d908ba4b7946c7422cfa3fb9ee30e98c 1 std/child_process.zig | ||||
| 530 27318503 1713603314000000000 6862d091fadcbbb652464ab10689bd23 1 std/Random/SplitMix64.zig | ||||
| 43084 27318537 1713603314000000000 a67e9f409c649ae15d47dcc9582247f0 1 std/Thread/Futex.zig | ||||
| 17014 27318693 1713603314000000000 b0e0b21898d4115f9772e9cddc07b2b7 1 std/dynamic_library.zig | ||||
| 17851 27318786 1713603314000000000 62510503fe6b45659189d32c19c9dc45 1 std/leb128.zig | ||||
| 1299 27318758 1713603314000000000 9ea5eaf4f2d36e2273f3ecec7f813b61 1 std/io/buffered_writer.zig | ||||
| 9054 27318484 1713603314000000000 507b73e961492111db47cc52a600ef63 1 std/Build/Step/InstallArtifact.zig | ||||
| 1160 27318762 1713603314000000000 32ae6866d358d400739c8281e2b92d26 1 std/io/counting_writer.zig | ||||
| 8372 27318728 1713603314000000000 d48498b32f349820311bbf338ae1aae5 1 std/hash/wyhash.zig | ||||
| 1618 27318580 1713603314000000000 60e22c8a23680b34b51d27b486811807 1 std/compress/flate/consts.zig | ||||
| 13375 27318576 1713603314000000000 239244362ca7a3d92e32a4518ccda927 1 std/compress/flate/Token.zig | ||||
| 194392 27318939 1713603314000000000 8cd958932971ea92fef9cfcc4c3d5a59 1 std/os/windows.zig | ||||
| 36349 27318672 1713603314000000000 0ebc01e41faf9f2bb9acfa3eff243d51 1 std/crypto/sha2.zig | ||||
| 20392 27318696 1713603314000000000 a41115e4a4263ff02975e97d21f21847 1 std/fifo.zig | ||||
| 1464 27318975 1713603314000000000 262bf5a41c36322233615e07256bc570 1 std/zig/Client.zig | ||||
| 8822 27318980 1713603314000000000 f6bcecb528b04a6efa217ed59a282862 1 std/zig/Server.zig | ||||
| 2591 27318709 1713603314000000000 54cecc0501b004131b133c8ec52688b3 1 std/fs/AtomicFile.zig | ||||
| 23028 27318550 1713603314000000000 5f649adf883cb2acad194b60017a4672 1 std/base64.zig | ||||
| 35399 27318474 1713603314000000000 1ee75307680904b768975512f119007a 1 std/Build/Cache/DepTokenizer.zig | ||||
| 3957 27318886 1713603314000000000 8a6d08b36d5d25b29bdff67ade3e947b 1 std/os/linux/vdso.zig | ||||
| 2685 27318498 1713603314000000000 5244bfd5edd68ad074bfdf866029fa86 1 std/Random/ChaCha.zig | ||||
| 52267 27318633 1713603314000000000 250bf69f713193c74da886706bb53369 1 std/crypto/chacha20.zig | ||||
| 792 28374515 1716085224634631478 2f8332e33e9ab33bd65ca604e8f2d3f1 0 /home/lumenk/.cache/zig/p/1220e4669d29190ac809cd3a7726c20b6b49ea7425b7b89cab16d4dc3172016982bc/build_12.zig | ||||
| 5693 27318687 1713603314000000000 01d731f8d28ba8382ff3c5885d5e0c75 1 std/dwarf/OP.zig | ||||
| 7399 27318679 1713603314000000000 7e3716a3c82a36541c6cf09b56a96da0 1 std/crypto/utils.zig | ||||
| 1539 27318765 1713603314000000000 ca6d9ebe9107eb6ffe4cc4b92611772a 1 std/io/limited_reader.zig | ||||
| 14595 27318719 1713603314000000000 9802848537ec3da81ac651945a298250 1 std/hash/auto_hash.zig | ||||
| 63987 27318570 1713603314000000000 92bca8ee6f4f51d8a0205a3b0896031a 1 std/c.zig | ||||
| 10812 27318564 1713603314000000000 b5d2e09197008802157fd9bda951945e 1 std/c/linux.zig | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							|  | @ -0,0 +1,12 @@ | |||
| pub const packages = struct { | ||||
|     pub const @"1220e4669d29190ac809cd3a7726c20b6b49ea7425b7b89cab16d4dc3172016982bc" = struct { | ||||
|         pub const build_root = "/home/lumenk/.cache/zig/p/1220e4669d29190ac809cd3a7726c20b6b49ea7425b7b89cab16d4dc3172016982bc"; | ||||
|         pub const build_zig = @import("1220e4669d29190ac809cd3a7726c20b6b49ea7425b7b89cab16d4dc3172016982bc"); | ||||
|         pub const deps: []const struct { []const u8, []const u8 } = &.{ | ||||
|         }; | ||||
|     }; | ||||
| }; | ||||
| 
 | ||||
| pub const root_deps: []const struct { []const u8, []const u8 } = &.{ | ||||
|     .{ "zig-msgpack", "1220e4669d29190ac809cd3a7726c20b6b49ea7425b7b89cab16d4dc3172016982bc" }, | ||||
| }; | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
		Loading…
	
		Reference in New Issue