shred 0.16.1

Dispatches systems in parallel which need read access to some resources, and write access to others.
Documentation
extern crate shred;

use shred::{ReadExpect, SystemData, World};

struct MyRes;

#[test]
#[should_panic(
    expected = r#"Tried to fetch resource of type `MyRes`[^1] from the `World`, but the resource does not exist.

You may ensure the resource exists through one of the following methods:

* Inserting it when the world is created: `world.insert(..)`.
* If the resource implements `Default`, include it in a system's `SystemData`, and ensure the system is registered in the dispatcher.
* If the resource does not implement `Default`, insert it in the world during `System::setup`.

[^1]: Full type name: `fetch_panic::MyRes`"#
)]
fn try_helpful_panic() {
    let res = World::empty();

    let _expect: ReadExpect<MyRes> = SystemData::fetch(&res);
}