# Marker Adapter 🔌 [![Crates.io](https://img.shields.io/crates/v/marker_adapter.svg)](https://crates.io/crates/marker_adapter) [![License: MIT OR Apache-2.0](https://img.shields.io/crates/l/marker_adapter.svg)](#license) This crate provides a common interface for drivers to communicate with lint crates for [Marker]. It does some heavy lifting which would otherwise need to be done by each individual driver. You're welcome to check out [Marker's Readme] if you're interested in the project. > **Warning** > > This crate is not part of Marker's official API, it's only intended to be used by drivers. [Marker]: https://github.com/rust-marker/marker [Marker's Readme]: https://github.com/rust-marker/marker/blob/master/README.md ## Functions ### Driver -> Lint Crate Communication The adapter can load a list of lint crates and send information from the driver to all lint crates. The adapter and API takes care of safe ABI communication between the driver and lint crates. ### Lint Crate -> Driver Communication Marker's API requires some callbacks from the lint crates into the driver. The adapter can deal with all the ABI conversions, drivers only need to implement the `DriverContext` trait provided by the adapter. ### Creating an adapter instance An adapter instance can be created from the environment. For this, the following environment values are read: * `MARKER_LINT_CRATES`: A semicolon separated list of crate name and absolute path pairs. Each pair is internally separated by a colon. ## Contributing Contributions are highly appreciated! If you encounter any issues or have suggestions for improvements, please check out [Marker's GitHub repository](https://github.com/rust-marker/marker). ## License Copyright (c) 2022-2023 Rust-Marker Rust-marker is distributed under the terms of the MIT license or the Apache License (Version 2.0). See [LICENSE-APACHE](https://github.com/rust-marker/marker/blob/master/LICENSE-APACHE), [LICENSE-MIT](https://github.com/rust-marker/marker/blob/master/LICENSE-MIT).