Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adds rustg_dmi_icon_states #140

Merged
merged 8 commits into from
Jul 8, 2023
Merged

adds rustg_dmi_icon_states #140

merged 8 commits into from
Jul 8, 2023

Conversation

silicons
Copy link
Contributor

@silicons silicons commented Jun 23, 2023

coderbus message link https://canary.discord.com/channels/484170914754330625/484170915253321734/1121523986996666519

tl;dr: faced with needing to wait for byond to un-heck this, and the fact that citadel is burning 400MB on icon_states right now, welcome to baby's first ""production"" rust PR

all this adds is rustg_dmi_icon_states which will hopefully be better than byond's icon_states for a time to come. all it does is open the dmi path, extract states, return a JSON

in theory this contains no memory leaks/weirdness since rust should handle the file closes/drops but uh please scrutinize this PR carefully i cannot understate how new I am to rust.

this also adds rohesie's dmi as that's what handles the uh, actual dmi loading.

dmsrc/dmi.dm Outdated Show resolved Hide resolved
src/dmi.rs Outdated Show resolved Hide resolved
@ZeWaka ZeWaka enabled auto-merge (squash) July 8, 2023 20:55
@ZeWaka ZeWaka merged commit f00c980 into tgstation:master Jul 8, 2023
2 checks passed
itsmeow pushed a commit to itsmeowForks/rust-g that referenced this pull request Dec 28, 2023
itsmeow added a commit to BeeStation/rust-g that referenced this pull request Dec 28, 2023
* Update time.dm (tgstation#130)

* Bump version major, due to breaking change in tgstation#130

* Try to fix the dependency issue

* Upgrade a bunch of dependencies (tgstation#134)

* Upgrade base64 to 0.21

* bump toml to 0.7.4

* Upgrade pathfinding to 4.2.1

* Upgrade git2 to 0.17.1

* update mysql crate to 24.0

* aho-corasic upgrade to 1.0 pt A
"automatic configuration is now the default."

* upgrade ahocorasic pt B

* Adds a redis reliable queue implementation (tgstation#133)

* adds project to vscode rust-analyzer config
it asked me to

* redis reliable queue implementation

* readme

* cleanup

* shit fixed

* proper redis response handling for lpop

* more clean

* okay better handling i GUESS

* updated redis crate, all my tests pass
breaking changes don't apply either

* update the cargo lock to 2.0.0

* ignore clippy for the redis_lpush match return

* fixes cellularnoise clippy lints

* dmi_strip_metadata won't remove alpha channel anymore (tgstation#136)

* pedantic and nursery clippy lints (tgstation#137)

* June `cargo update` (tgstation#138)

* `cargo update`

* update `const-random` to 0.1.15
(nothingburger change)

* Update the url packages (percent-encoding and url)
(still nothingburger)

* dashmap to 5.4

* rayon to 1.7

* Stop using deprecated chrono func (would panic)

* run `cargo update` again
apparently a lot of things did some releases

* put the once_cell version to 1.17

for some reason i missed it, ooops

* 2.0.1 (tgstation#139)

* add uniform precision to rust-g timestamp (tgstation#141)

* add precision to rust-g timestamp

* coping

* adds rustg_dmi_icon_states (tgstation#140)

* 2.1.0 (tgstation#143)

* Make mysql use the native rust tls stack by default (tgstation#144)

* 3.0.0 (tgstation#147)

* Some routine updates for 3.0.0 (tgstation#152)

routine package maintenance and upgrades - i went through the breaking changes and didn't see anything that looked like it affected us, only additions to public apis really

* Use gitoxide rather than libgit2 for the git module (tgstation#156)

* Adds Base64 decoding stuff (tgstation#154)

* More routine updates (tgstation#157)

* Updates `rustg_file_exists()` macro to remove user error (tgstation#158)

* Last little bit of updates (tgstation#159)

* v3.1.0 (tgstation#161)

* pathfinder: fix typo in rustg_remove_node_astar (tgstation#162)

* pathfinder: stringify args expecting numbers (tgstation#163)

* Re-add all features release builds

* Label linux builds

* IconForge

Start blending

Huge cleanup

Finish optimizing the thing

Finish the thing!!

Clean up a bit

Re-add 32-bit thing

Fix TOML sorting

Add dmsrc

Fix clippy suggestions

Clippy.. stop being mean

Cargo fmt + doc comments

Code cleanup

More cleanup, remove most unsafe unwrap()s, use Match syntax.

Remove unneccesarily verbose casting

Fix overlay blending

Cleanup with new DMI version

Cargo fmt

Leaf test, DynamicImage->RgbaImage, better Error handling, DashMap, and cleanup command

Fix

Further tree optimizations, hashing optimization, cache icostrings more effectively.

Optimize unique_icons insertion a little

Fix macro

Little more cleanup

Add to README

Update dmi, add caching logic.

Address reviews

Cleanup panic unwind

Fix lint failure

---------

Co-authored-by: Zephyr <[email protected]>
Co-authored-by: oranges <[email protected]>
Co-authored-by: ZeWaka <[email protected]>
Co-authored-by: DTraitor <[email protected]>
Co-authored-by: silicons <[email protected]>
Co-authored-by: Lucy <[email protected]>
Co-authored-by: AffectedArc07 <[email protected]>
Co-authored-by: Kapu1178 <[email protected]>
Co-authored-by: vvvv-vvvv <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants