wip 0.2.0

Crate providing traits and macros to use while developing Rust code
Documentation
# wip -- The crate you'll never put into production

[![License](https://img.shields.io/badge/license-MIT%20OR%20Apache%202%20-green)](#License)
[![Crates.io](https://img.shields.io/crates/v/wip)](https://crates.io/crates/wip)
[![Docs](https://docs.rs/wip/badge.svg)](https://docs.rs/wip)
[![dependency status](https://deps.rs/repo/codeberg/dureuill/wip/status.svg)](https://deps.rs/repo/codeberg/dureuill/wip)

`wip` helps you during Rust development by helping signal when something is unfinished.

It plays a role similar to the [`std::todo`](https://doc.rust-lang.org/std/macro.todo.html) macro, but emits warning on use, so that a proper CI blocks uses of this crate from reaching production.

![Screenshot of the helix editor displaying various warnings emitted by this crate](https://codeberg.org/dureuill/wip/raw/branch/main/assets/example.png)

# What's inside?

- [`wip`]https://docs.rs/wip/latest/wip/trait.WipOptionExt.html#tymethod.wip extension methods for `Result` and `Option`.
   They function like [`unwrap`]https://doc.rust-lang.org/std/option/enum.Option.html#method.unwrap but emit warnings on use, so that you remember to remove them before merging that PR!
- [`clone_fixme`]https://docs.rs/wip/latest/wip/trait.WipCloneExt.html#tymethod.clone_fixme extension method for any clonable object, for clones that you might later regret, via [`WipCloneExt::clone_fixme`].
- [`wip!()`]https://docs.rs/wip/latest/wip/macro.wip.html macros that emit warnings and work with iterators ([`wip_iter!`]https://docs.rs/wip/latest/wip/macro.wip_iter.html) and futures ([`wip_future!`]https://docs.rs/wip/latest/wip/macro.wip_future.html, you guessed it)
- A [`fixme()`]https://docs.rs/wip/latest/wip/macro.fixme.html macro that doesn't panic like [`wip!`]https://docs.rs/wip/latest/wip/macro.wip.html, but still emit a warning, to keep track of all these `// FIXME: handle edge case` in your code...

# How to use?

1. Add the crate to your dependencies.
  ```sh
  cargo add wip
  ```
2. (optional)
    glob import the prelude in your files: `use wip::prelude::*;`
    with the one from this crate.
  ```rust
  use wip::prelude::*;
  ```
3. Profit!

This crate relies on deprecation warnings, so make sure you don't `#![allow(deprecated)]`, lest it won't warn you as intended.

# Alternatives

I don't currently know of crates exposing the same functionality.

However, if you don't like the idea of adding a dependency for this,
did you know you could use doc comments over expressions to benefit from a free warning?

```norust
unused doc comment
use `//` for a plain comment
`#[warn(unused_doc_comments)]` on by default
```

# No genAI

This crate does not use any genAI tooling and intends on staying so.