Git Product home page Git Product logo

mhrice's Introduction

mhrice

⚠️ This project mainly targets the steam version. It might or might not work for the other versions

What?

To build http://mhrice.info, and to reverse engineer the game.

Can I use the code and/or the output in my project?

Yes, you can. I open-sourced this because I want to share it.

Although I don't enforce anything beyond the license conditions, I kindly ask you to give attribution to the mhrice project if you use the code or the output from it in another places. Thank you!

Platform and dependency

  • Actively tested on linux and Windows. Might work on macOS. (If not please open an issue)
  • Rust, cargo
  • OpenGL 3.3 if running any model-related command

Credits

License

Licensed under either of

at your option.

mhrice's People

Contributors

dependabot[bot] avatar dtlnor avatar wwylele avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

mhrice's Issues

read-tdb error with sunbreak demo.

I got an error when running read-tdb on Sunbreak demo.

command: mhrice read-tdb -t "F:\SteamLibrary\steamapps\common\MONSTER HUNTER RISE SUNBREAK DEMO\MHRiseSunbreakDemo.exe" > tdb.cs
Error: failed to fill whole buffer

Is there a solution?

  • Win10 (x64)
  • cargo 1.61.0 (a028ae42f 2022-04-29)
  • rustc 1.61.0 (fe5b13d68 2022-05-18)
  • rustup 1.24.3 (ce5817a94 2021-05-31)

NPC Textures

NPC textures seem to have some weirdness to them. I've been looking into them separately from this repo, and both my attempts and this repo fail to properly extract the ALBD of most NPCs. Here's the output from "natives/NSW/npc/npc002_00/npc002_00_body/npc002_00_body_ALBD.tex.28". Is there data missing within the file itself, or is it potentially compressed?
hinoaTex

Update checklist

  • Verify whether PAK has new format
  • Verify whether TDB has new format
  • Run all known format scan
  • Update suffix version numbers
  • Dump tree
  • Verify RSZ formats against new TDB
  • Dump new json

monster id for ?

I looked at the Hitzone data

Monster 001 == Rathian
Monster 060 == Arzuros
Monster 082 == Mizutsune
Monster 098 == Great Izuchi

Right?

other game search-path problem

你好,這是我遇到的錯誤訊息,因為訊息太長,只有擷取部分

devil may cry
D:\BaiduYunDownload\DEVIL MAY CRY 5\Devil May Cry 5\Devil May Cry 5 Vergil>mhrice search-path --pak re_chunk_000.pak > 12345.list
thread 'thread 'thread 'thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1' panicked at '' panicked at '' panicked at '', called Result::unwrap() on an Err value: Unsupported format: 1called Result::unwrap() on an Err value: Unsupported format: 1called Result::unwrap() on an Err value: Unsupported format: 1src\main.rs', ', ', :src\main.rssrc\main.rssrc\main.rs508::::50850850849:::
494949note: run with RUST_BACKTRACE=1 environment variable to display a backtrace

thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread 'thread 'thread '' panicked at '' panicked at '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1called Result::unwrap() on an Err value: Unsupported format: 1called Result::unwrap() on an Err value: Unsupported format: 1', ', ', src\main.rssrc\main.rssrc\main.rs:::508508508:::494949

thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508thread ':49' panicked at '
thread 'called Result::unwrap() on an Err value: Unsupported format: 1', ' panicked at 'src\main.rscalled Result::unwrap() on an Err value: Unsupported format: 1thread ':', 508src\main.rs' panicked at '::called Result::unwrap() on an Err value: Unsupported format: 149508',
src\main.rs:thread ':49508
:' panicked at 'thread '49called Result::unwrap() on an Err value: Unsupported format: 1
', ' panicked at 'thread 'src\main.rscalled Result::unwrap() on an Err value: Unsupported format: 1:', ' panicked at '508src\main.rscalled Result::unwrap() on an Err value: Unsupported format: 1::', 49508src\main.rs
::49508
:49thread '
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1' panicked at '', called Result::unwrap() on an Err value: Unsupported format: 1src\main.rs', :src\main.rs508::50849:
49thread '
' panicked at 'thread 'called Result::unwrap() on an Err value: Unsupported format: 1', ' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1src\main.rs', src\main.rs::508508::4949

thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49

Ghosts 'n Goblins Resurrection

thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1' panicked at '', called Result::unwrap() on an Err value: Unsupported format: 1src\main.rs', :src\main.rs508::50849:
49thread '
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1' panicked at '', called Result::unwrap() on an Err value: Unsupported format: 1src\main.rs', :src\main.rs508::50849:
49thread '
thread '' panicked at '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1called Result::unwrap() on an Err value: Unsupported format: 1', ', src\main.rssrc\main.rs::508508::4949

thread 'thread '' panicked at '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1called Result::unwrap() on an Err value: Unsupported format: 1', ', src\main.rssrc\main.rs::508508::4949

thread 'thread '' panicked at '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1called Result::unwrap() on an Err value: Unsupported format: 1', ', src\main.rssrc\main.rs::508508::4949
thread '
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1' panicked at '', src\main.rscalled Result::unwrap() on an Err value: Unsupported format: 1:', 508src\main.rs::49508
thread ':49' panicked at '
called Result::unwrap() on an Err value: Unsupported format: 1thread '', src\main.rs' panicked at ':called Result::unwrap() on an Err value: Unsupported format: 1508:', 49src\main.rs
thread ':508' panicked at ':called Result::unwrap() on an Err value: Unsupported format: 149',
src\main.rsthread ':508' panicked at ':called Result::unwrap() on an Err value: Unsupported format: 149',
src\main.rs:thread '508:' panicked at '49called Result::unwrap() on an Err value: Unsupported format: 1
', thread 'src\main.rs:508' panicked at ':called Result::unwrap() on an Err value: Unsupported format: 149',
thread 'src\main.rs:508:49' panicked at '
called Result::unwrap() on an Err value: Unsupported format: 1thread '', src\main.rs' panicked at ':called Result::unwrap() on an Err value: Unsupported format: 1508', :src\main.rs49:
thread '508:' panicked at '49called Result::unwrap() on an Err value: Unsupported format: 1
', thread 'src\main.rs:' panicked at '508called Result::unwrap() on an Err value: Unsupported format: 1:', 49src\main.rs
:thread '508:' panicked at '49called Result::unwrap() on an Err value: Unsupported format: 1
', thread 'src\main.rs:' panicked at '508called Result::unwrap() on an Err value: Unsupported format: 1:', 49src\main.rs
:thread '508:' panicked at '49called Result::unwrap() on an Err value: Unsupported format: 1
', thread 'src\main.rs:' panicked at '508called Result::unwrap() on an Err value: Unsupported format: 1:', 49src\main.rs
:thread '508:' panicked at '49called Result::unwrap() on an Err value: Unsupported format: 1
', thread 'src\main.rs:' panicked at '508called Result::unwrap() on an Err value: Unsupported format: 1:', 49src\main.rs
:thread '508' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', :49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49src\main.rs:
508thread ':49
' panicked at 'thread 'called Result::unwrap() on an Err value: Unsupported format: 1', ' panicked at 'src\main.rscalled Result::unwrap() on an Err value: Unsupported format: 1:', 508src\main.rs::49508
:thread '49
' panicked at 'thread 'called Result::unwrap() on an Err value: Unsupported format: 1', ' panicked at 'src\main.rscalled Result::unwrap() on an Err value: Unsupported format: 1:', 508src\main.rs::49508
:thread '49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1' panicked at '', src\main.rs:508:49called Result::unwrap() on an Err value: Unsupported format: 1
', thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49src\main.rs
thread ':508' panicked at ':called Result::unwrap() on an Err value: Unsupported format: 149',
src\main.rsthread ':508' panicked at ':called Result::unwrap() on an Err value: Unsupported format: 149',
src\main.rsthread ':508' panicked at ':called Result::unwrap() on an Err value: Unsupported format: 149',
src\main.rsthread ':508' panicked at ':called Result::unwrap() on an Err value: Unsupported format: 149',
thread 'src\main.rs:' panicked at '508called Result::unwrap() on an Err value: Unsupported format: 1:', src\main.rs49:
508thread ':49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:', 508src\main.rs::49508
:thread '49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1' panicked at '', called Result::unwrap() on an Err value: Unsupported format: 1src\main.rs', :src\main.rs508::50849:
49thread '
thread '' panicked at '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1called Result::unwrap() on an Err value: Unsupported format: 1', ', src\main.rssrc\main.rs::508508::4949
thread '
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1' panicked at '', called Result::unwrap() on an Err value: Unsupported format: 1src\main.rs', :src\main.rs508::50849:
thread '49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1' panicked at '', called Result::unwrap() on an Err value: Unsupported format: 1src\main.rs:508:49
thread '', src\main.rs' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs::508:508:4949
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49
thread '' panicked at 'called Result::unwrap() on an Err value: Unsupported format: 1', src\main.rs:508:49

Identify data type of MsgEntry.attributes

The number of MsgEntry.attributes in each entry is same as the number of Msg.attribute_headers.
The MsgAttributeHeader.j indicating the data type of the value in MsgEntry.attributes
Which from what I observe should be:
0 : int64
1 : double
2 : string (a u64 offset pointing to the actual string)
which should resovle the TODO at https://github.com/wwylele/mhrice/blob/main/src/msg.rs#L138

edit:
-1 : string (a u64 offset pointing to a actual string), it seems like its always pointing to a null string(0x0000)

Request support for UTF-16 encoded file path search

From the research of the pfb file, I found that some path(or say file name) contains non-ascii character. Which would be splited by the search path function on that two byte character
file path generate by search path function in patch_005:

099_shell003_breathvacuum.pfb $ []
099_shell003_breathvacuum.user $ []
099_shell003_breathvacuum_effect.user $ []
099_shell003_breathvacuum_hit.user $ []
099_shell003_breathvacuum_move.user $ []
099_shell003_lightbulbbreath.pfb $ []
099_shell003_lightbulbbreath.user $ []
099_shell003_lightbulbbreath02.pfb $ []
099_shell003_lightbulbbreath02.user $ []
099_shell003_lightbulbbreath02_effect.user $ []
099_shell003_lightbulbbreath02_hit.user $ []
099_shell003_lightbulbbreath02_move.user $ []
099_shell003_lightbulbbreath_effect.user $ []
099_shell003_lightbulbbreath_hit.user $ []
099_shell003_lightbulbbreath_move.user $ []
099_shell05_breathvacuum.pfb $ []
099_shell05_breathvacuum.user $ []
099_shell05_breathvacuum_effect.user $ []
099_shell05_breathvacuum_hit.user $ []
099_shell05_breathvacuum_move.user $ []

the original path should be

enemy/em099/05/shell/EmShell003/prefab/ex_em099_shell003_breathvacuum.pfb
enemy/em099/05/shell/EmShell003/prefab/ex_em099_shell003_lightbulbbreath.pfb
enemy/em099/05/shell/EmShell003/prefab/ex_em099_shell003_lightbulbbreath02.pfb
enemy/em099/05/shell/EmShell003/user_data/effect/ex_em099_shell003_breathvacuum_effect.user
enemy/em099/05/shell/EmShell003/user_data/effect/ex_em099_shell003_lightbulbbreath_effect.user
enemy/em099/05/shell/EmShell003/user_data/effect/ex_em099_shell003_lightbulbbreath02_effect.user
enemy/em099/05/shell/EmShell003/user_data/ex_em099_shell003_breathvacuum.user
enemy/em099/05/shell/EmShell003/user_data/ex_em099_shell003_lightbulbbreath.user
enemy/em099/05/shell/EmShell003/user_data/ex_em099_shell003_lightbulbbreath02.user
enemy/em099/05/shell/EmShell003/user_data/hit/ex_em099_shell003_breathvacuum_hit.user
enemy/em099/05/shell/EmShell003/user_data/hit/ex_em099_shell003_lightbulbbreath_hit.user
enemy/em099/05/shell/EmShell003/user_data/hit/ex_em099_shell003_lightbulbbreath02_hit.user
enemy/em099/05/shell/EmShell003/user_data/move/ex_em099_shell003_breathvacuum_move.user
enemy/em099/05/shell/EmShell003/user_data/move/ex_em099_shell003_lightbulbbreath_move.user
enemy/em099/05/shell/EmShell003/user_data/move/ex_em099_shell003_lightbulbbreath02_move.user
enemy/em099/05/shell/EmShell005/prefab/ex_em099_shell05_breathvacuum.pfb
enemy/em099/05/shell/EmShell005/user_data/effect/ex_em099_shell05_breathvacuum_effect.user
enemy/em099/05/shell/EmShell005/user_data/ex_em099_shell05_breathvacuum.user
enemy/em099/05/shell/EmShell005/user_data/hit/ex_em099_shell05_breathvacuum_hit.user
enemy/em099/05/shell/EmShell005/user_data/move/ex_em099_shell05_breathvacuum_move.user

the full width is presented in the path
( so far this is the only case I have seen for the file name using a 2Byte character, also as ref em099 has presented in tdb file as class name too)

Guild Card Special Investigation Medal Icon

Have you managed to extract the aforementioned icon from the game files? The one that appears by each monster on your guild card after you complete a special investigation for them. I've been making and updating a "completionist" tracker spreadsheet on Google Sheets ever since i started playing base Rise, and i think that's one of the few icons i still need.

Update suffix version

the following suffix verison was updated in the Latest version of mhrise
(the commented one is the old version number)

    m.insert("mmtr", 0x77da5e9d); //0x77a4cbdd
    m.insert("mmtrs", 0x77da5e9d); //0x77a4cbdd
    m.insert("vsdf", 0x77da5e9e); //0x77a4cbde

Improve nav menu

Current problems:

  • activate sub-menu by hovering isn't great and doesn't work on some devices
  • on certain screen sizes (e.g. 1024x768) it doesn't fold while also can't display every element
  • the experience of a long menu on mobile is not the best - consider panel / buttons instead of one element per line

Could not find 'unix' in 'platform' when building on MacOS

I tried to build the program on MacOS, by first installing rust using brew install rust, then checking version with cargo --version and an output of "cargo 1.53.0", then navigating to the root directory of this project, "mhrice-main", and finally build using cargo build. However, I encountered an error, claiming "could not find `unix` in `platform`". The complete stderr message is this log.txt, in which the error message is as follows:

error[E0432]: unresolved import glutin::platform::unix
--> src/gpu/mod.rs:24:27
|
24 | use glutin::platform::unix::EventLoopExtUnix;
| ^^^^ could not find unix in platform

error[E0599]: no function or associated item named new_any_thread found for struct EventLoop<_> in the current scope
--> src/gpu/mod.rs:29:40
|
29 | glutin::event_loop::EventLoop::new_any_thread();
| ^^^^^^^^^^^^^^ function or associated item not found in EventLoop<_>

error: aborting due to 2 previous errors

Some errors have detailed explanations: E0432, E0599.
For more information about an error, try rustc --explain E0432.
error: could not compile mhrice

To learn more, run the command again with --verbose.

[tdb-dump]missing closing bracket on return attribute

in the tdb output of PC 3.6.1.1 version
in class snow.AgapanthusClient.<>c
in method System.ValueTuple`2<System.String,snow.AgapanthusClient.FileInfoData> <onReceiveInfo>b__35_0

the return attribute is missing the closing bracket

line 1267060~

    /* returns */[System.Runtime.CompilerServices.TupleElementNamesAttribute(["f","u",]
    /*16896, 0*/ [hid_by_sig]internal  System.ValueTuple`2<System.String,snow.AgapanthusClient.FileInfoData> <onReceiveInfo>b__35_0 (
        /*0*/  snow.AgapanthusClient.FileInfoData u,
        /*0*/  System.String f,
    );

I've tried to change the code of tdb.rs on line 959
print!("]"); to print!("])]");
which seems fine to solve this problem as far as I can see

how i can use this in my iOS app?

now i download the *.json file and read it in iOS app, i wonder if there is other way to fetch the info such as armors、skills and so on?

Armor name weirdness

at

.get(armor_series.armor_series.0 as usize); // ?!
and
let name = msg
.entries
.get(id)
.with_context(|| format!("Cannot find name for armor {:?}", armor.pl_armor_id))?; // ?!
let explain = explain_msg
.entries
.get(id)
.with_context(|| format!("Cannot find name for armor {:?}", armor.pl_armor_id))?; // ?!

where we look up the armor name from msg, unlike other names, we uses armor ID to match against msg entry index, instead of the msg entry name. This appears to be the correct matching, but why is it? Is this the actually correct method, or there is a hidden armor ID -> msg entry name mapping somewhere? Could we also be wrong about using msg entry name anywhere else?

Missing Data For Weapons

Everything looks pretty good!

The only part I've not managed to see,: http://mhrise.mhrice.info/weapon/GreatSword_024.html You've got the cost to craft/buy tags, but the buy cost isn't specified anywhere.
The price for crafting is 66% of the "base_val" cost which you're showing, but the 12k cost for buying the item isn't shown.

I can't see where this is handled though.
On the site - you're showing the forge vs upgrade item costs where relevant but not the price.
For the first in the tree, you're showing forge price + materials and also just price with no materials but that's not clearly specified either.

Hoping you can help and clarify? :)

weapon keys: ['base_data', 'product', 'change', 'process', 'tree', 'name', 'explain']

Product being the buying info and process being the upgrade?

Include computed chances to get monster parts

Hello, I would like to share an idea that help people trying to use the website in order to know the chances of getting a monster part.
For example, it would be great to compute the chances of the zinogre claw and show the final chance depending if the player broke his arms, capture/carve it, etc.

Casual TODO list

I'll put whatever small items to do that I come up with here....

File path error occurred in scan-msg

G:\xci\MHR\demo2>mhrice.exe scan-msg --output G:\xci\MHR\demo2\msg
Error: ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。 (os error 123)

OS:Windows 10 Pro 20H2
The gen-resources and gen-json commands worked correctly.
It may be that the file name contains characters that cannot be used in Windows.

Audit usage of Debug `{:?}` formatting

{:?} in principle should be only used for dev purpose and not in product output. For this project, it should be used in the following situation

  • printing to stderr is fine
  • output to website when a record (monster, item etc.) is not found for a given ID is ok
  • output yet to understand property to website is temporarily ok, but should be continue investigated
  • output already understood enum to website shouldn't go through Debug any more
  • shouldn't be part of any url

Support drop_item_info_data

I guess "enemy/em{0:03}/{1:02}/user_data/em{0:03}_{1:02}_drop_item_info_data.user" this file include drop information of monster

I tried to parse this file. but i can't understand rsz_struct,

so could you implement this function or let me know some information rsz files and more detail code for extracting rsz?

Pre-emptive TDB fix

Was looking at the tdb for the RE8 demo that came out on PC, and it uses version 0x45. One thing I noticed though is that in the fields, several of the name offsets would be way higher than the file allowed, so I changed line 557 (of the old code supporting version 0x45) to let (name_offset,unkn2) = file.read_u32()?.bit_split((22,10)); and it seems to have worked. It might not be important now for MHRise, but given that the two formats are rather close otherwise, it may be useful to know later.

Get the error with gen-json command.

I got an error with gen-json. (Title ver.1.0.0)

Error: Generating large monsters

Caused by:
    0: enemy/em001/00/user_data/em001_00_datatune.user
    1: Left over data

Request support for mhrise demo pc version

when I do path search, it panic
(WSL ubuntu)

0
100
200
thread '<unnamed>' panicked at 'called `Result::unwrap()` on an `Err` value: Unknown frame descriptor', src/main.rs:653:49
stack backtrace:
   0: rust_begin_unwind
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:515:5
   1: core::panicking::panic_fmt
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/panicking.rs:92:14
   2: core::result::unwrap_failed
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/result.rs:1355:5
   3: core::result::Result<T,E>::unwrap
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/result.rs:1037:23
   4: mhrice::search_path::{{closure}}
             at /mnt/c/Users/dtlnor/Documents/GitHub/mhrice/src/main.rs:653:43
   5: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &F>::call_mut
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/ops/function.rs:247:13
   6: core::iter::adapters::map::map_try_fold::{{closure}}
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/adapters/map.rs:89:28
   7: core::iter::adapters::map::map_try_fold::{{closure}}
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/adapters/map.rs:89:21
   8: core::iter::traits::iterator::Iterator::try_fold
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/traits/iterator.rs:1972:21
   9: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/adapters/map.rs:115:9
  10: <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::try_fold
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/adapters/map.rs:115:9
  11: <core::iter::adapters::fuse::Fuse<I> as core::iter::adapters::fuse::FuseImpl<I>>::try_fold
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/adapters/fuse.rs:448:9
  12: <core::iter::adapters::fuse::Fuse<I> as core::iter::traits::iterator::Iterator>::try_fold
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/adapters/fuse.rs:97:9
  13: <core::iter::adapters::flatten::FlattenCompat<I,U> as core::iter::traits::iterator::Iterator>::try_fold
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/adapters/flatten.rs:316:16
  14: <core::iter::adapters::flatten::FlatMap<I,U,F> as core::iter::traits::iterator::Iterator>::try_fold
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/adapters/flatten.rs:66:9
  15: <core::iter::adapters::take_while::TakeWhile<I,P> as core::iter::traits::iterator::Iterator>::try_fold
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/adapters/take_while.rs:93:13
  16: <core::iter::adapters::take_while::TakeWhile<I,P> as core::iter::traits::iterator::Iterator>::fold
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/core/src/iter/adapters/take_while.rs:108:9
  17: <rayon::iter::fold::FoldFolder<C,ID,F> as rayon::iter::plumbing::Folder<T>>::consume_iter
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/fold.rs:158:20
  18: <rayon::iter::flat_map_iter::FlatMapIterFolder<C,F> as rayon::iter::plumbing::Folder<T>>::consume_iter
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/flat_map_iter.rs:136:20
  19: <rayon::iter::map::MapFolder<C,F> as rayon::iter::plumbing::Folder<T>>::consume_iter
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/map.rs:248:21
  20: rayon::iter::plumbing::Producer::fold_with
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:110:9
  21: rayon::iter::plumbing::bridge_producer_consumer::helper
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:438:13
  22: rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:418:21
  23: rayon_core::join::join_context::call_a::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:124:17
  24: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
  25: std::panicking::try::do_call
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
  26: __rust_try
  27: std::panicking::try
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
  28: std::panic::catch_unwind
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
  29: rayon_core::unwind::halt_unwinding
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/unwind.rs:17:5
  30: rayon_core::join::join_context::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:141:24
  31: rayon_core::registry::in_worker
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/registry.rs:875:13
  32: rayon_core::join::join_context
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:132:5
  33: rayon::iter::plumbing::bridge_producer_consumer::helper
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:416:47
  34: rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:418:21
  35: rayon_core::join::join_context::call_a::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:124:17
  36: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
  37: std::panicking::try::do_call
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
  38: __rust_try
  39: std::panicking::try
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
  40: std::panic::catch_unwind
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
  41: rayon_core::unwind::halt_unwinding
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/unwind.rs:17:5
  42: rayon_core::join::join_context::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:141:24
  43: rayon_core::registry::in_worker
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/registry.rs:875:13
  44: rayon_core::join::join_context
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:132:5
  45: rayon::iter::plumbing::bridge_producer_consumer::helper
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:416:47
  46: rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:418:21
  47: rayon_core::join::join_context::call_a::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:124:17
  48: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
  49: std::panicking::try::do_call
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
  50: __rust_try
  51: std::panicking::try
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
  52: std::panic::catch_unwind
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
  53: rayon_core::unwind::halt_unwinding
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/unwind.rs:17:5
  54: rayon_core::join::join_context::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:141:24
  55: rayon_core::registry::in_worker
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/registry.rs:875:13
  56: rayon_core::join::join_context
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:132:5
  57: rayon::iter::plumbing::bridge_producer_consumer::helper
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:416:47
  58: rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:418:21
  59: rayon_core::join::join_context::call_a::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:124:17
  60: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
  61: std::panicking::try::do_call
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
  62: __rust_try
  63: std::panicking::try
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
  64: std::panic::catch_unwind
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
  65: rayon_core::unwind::halt_unwinding
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/unwind.rs:17:5
  66: rayon_core::join::join_context::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:141:24
  67: rayon_core::registry::in_worker
             at 300/home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/registry.rs
:875:13
  68: rayon_core::join::join_context
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:132:5
  69: rayon::iter::plumbing::bridge_producer_consumer::helper
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:416:47
  70: rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:418:21
  71: rayon_core::join::join_context::call_a::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:124:17
  72: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
  73: std::panicking::try::do_call
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
  74: __rust_try
  75: std::panicking::try
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
  76: std::panic::catch_unwind
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
  77: rayon_core::unwind::halt_unwinding
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/unwind.rs:17:5
  78: rayon_core::join::join_context::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:141:24
  79: rayon_core::registry::in_worker
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/registry.rs:875:13
  80: rayon_core::join::join_context
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:132:5
  81: rayon::iter::plumbing::bridge_producer_consumer::helper
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:416:47
  82: rayon::iter::plumbing::bridge_producer_consumer::helper::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-1.5.1/src/iter/plumbing/mod.rs:418:21
  83: rayon_core::join::join_context::call_a::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:124:17
  84: <std::panic::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:347:9
  85: std::panicking::try::do_call
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:401:40
  86: __rust_try
  87: std::panicking::try
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panicking.rs:365:19
  88: std::panic::catch_unwind
             at /rustc/a178d0322ce20e33eac124758e837cbd80a6f633/library/std/src/panic.rs:434:14
  89: rayon_core::unwind::halt_unwinding
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/unwind.rs:17:5
  90: rayon_core::join::join_context::{{closure}}
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:141:24
  91: rayon_core::registry::in_worker
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/registry.rs:875:13
  92: rayon_core::join::join_context
             at /home/dtlnor/.cargo/registry/src/github.com-1ecc6299db9ec823/rayon-core-1.9.1/src/join/mod.rs:132:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
400
500```

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.