partial-idl-parser 1.0.0

A simple parser for anchor IDL without importing anchor types or causing build panics for WASM targets.
Documentation
## Simple anchor IDL Parser
A simple parser for partial part of anchor IDL without importing anchor types or causing build panics for WASM targets.

It only parses the `address` of the program and the `instructions` containing the instruction `name` and the `discriminant` which are useful for the scope of the `wallet-adapter` templates.


### Macro for creating a path to the IDL
The frontend is in the same workspace as the target directory which contains the anchor IDL directory.

The directory is in path `../../target/idl/`.

Pass the name of the program from `/programs` so that the file is located successfully.

Get the `AnchorIdlPartialData` data structure containing the IDL of an anchor example called `temp`

```rust,ignore
use partial_idl_parser::*;

const IDL: &str = idl_path!("temp");
```

If the directory is different you can use `idl_custom_path` macro:
```rust,ignore
use partial_idl_parser::*;

const IDL: &str = idl_custom_path!("../../target/custom_idl_dir", "temp");
```

### The `AnchorIdlPartialData`
Parsed IDL is stored within a `AnchorIdlPartialData` struct.

```rust,ignore
fn foo() -> Result<(), serde_json::Error> {
    use partial_idl_parser::*;

    // Get the JSON IDL data
    const IDL_RAW_DATA: &str = idl_path!("temp");

    // Parse the JSON IDL
    let parsed_idl = AnchorIdlPartialData::parse(IDL_RAW_DATA)?;

    // Get program ID
    parsed_idl.program_id();


    // Get An Instruction by it's identifier assuming the instruction is
    // labeled by the name `initialize`
    parsed_idl.get_instruction("initialize");


    // Get the instruction discriminant assuming the instruction is
    // labeled by the name `initialize`
    parsed_idl.get_discriminant("initialize");

    Ok(())
}
```

### LICENSE
MIT OR APACHE-2.0