I'm writing an OS and I want my drivers to be able to call into my kernel by linking to it. However, my kernel requires at least a disk IO driver, and so I've included that in the cargo.toml. But there's a dependency on the kernel library in the disk IO driver's crate as well, creating a dependency loop. As Cargo puts it:
```error: cyclic package dependency: package kernel v0.1.0 (C:\Users\ethin\source\kernel)
depends on itself. Cycle:
package kernel v0.1.0 (C:\Users\ethin\source\kernel)
... which is depended on by nvme v0.1.0 (C:\Users\ethin\source\kernel\drivers\storage\nvme)
... which is depended on by kernel v0.1.0 (C:\Users\ethin\source\kernel)
A resolution to this could be me to incorporate the driver directly into the kernel itself, but I want it to be possible to trivially swap out the driver for another. (I'm not quite sure how I could actually enforce this requirement -- build scripts, maybe?) What are other alternatives to resolving this cycle?