chromium/third_party/rust/chromium_crates_io/vendor/qr_code-2.0.0/README.md

qr_code
=======

[![crates.io](https://img.shields.io/crates/v/qr_code.svg)](https://crates.io/crates/qr_code)
[![MIT OR Apache 2.0](https://img.shields.io/badge/license-MIT%20%2f%20Apache%202.0-blue.svg)](./LICENSE-APACHE.txt)

QR code encoder and decoder [*] in Rust. [Documentation](https://docs.rs/qr_code).

### Encoder 

This lib forked https://docs.rs/qrcode mainly because of lack of support to structured QR code (multiple QR codes)
even if the minimal change required has been pushed https://github.com/kennytm/qrcode-rust/pull/44

Moreover dependencies `image`, `checked_int_cast` and module `render` has been removed with a view to simplicity.

### Decoder [*]

Decoder part is based on https://docs.rs/rqrr/0.3.0/rqrr/ without the image detection part and is not intended for scanning
QR codes from camera.

**Decoder is included only for testing purpose**, so that depending libraries could run round trip during tests.

Example
-------

## Bmp image  generation

requires `bmp` feature

```rust
let qr_code = qr_code::QrCode::new(b"Hello").unwrap();
let bmp = qr_code.to_bmp();
bmp.write(std::fs::File::create("test.bmp").unwrap()).unwrap();
```

Generate this image:

![test](https://raw.githubusercontent.com/RCasatta/qr_code/master/test_data/test.bmp)

Looks small?

Many context supports rescaling mode specific for pixelated images, for example in html `image-rendering: pixelated;`

As an alternative see method `Bmp::mul` and `Bmp::add_whitespace`

## Unicode string generation

```rust
let qr_code = qr_code::QrCode::new(b"Hello").unwrap();
println!("{}", qr_code.to_string(false, 3));
```

Generates this output (looks better in terminal):

```text
                           
                           
   █▀▀▀▀▀█  ▀▀▀█ █▀▀▀▀▀█   
   █ ███ █ █ █ ▀ █ ███ █   
   █ ▀▀▀ █ ██ ▄▀ █ ▀▀▀ █   
   ▀▀▀▀▀▀▀ █ █ ▀ ▀▀▀▀▀▀▀   
   ▀ ▀█▀▀▀ ▄▀ █▄▄█▀▀██ ▄   
     █▀▀█▀▄▄▀█▄█▄█▀ ██▀    
    ▀▀▀  ▀▀█▀▀ █  █ ▄  ▀   
   █▀▀▀▀▀█ ▄▀▄▀ ▀ ▄█▄██    
   █ ███ █ █▄ █▄█▄▄▀▄ ▀    
   █ ▀▀▀ █ ▀█ ▄█▄█▀▄▄█     
   ▀▀▀▀▀▀▀ ▀▀  ▀   ▀  ▀    
                           
```

## Minimum Supported Rust Version (MSRV)

Current MSRV is 1.48.0