You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: layout.rs
    path of file: ./repos/fontdue/dev/benches
    
    the code of the file until where you have to start completion: #[macro_use]
extern crate criterion;

use criterion::{BenchmarkId, Criterion};
use fontdue::layout::{CoordinateSystem, Layout, LayoutSettings, TextStyle};
use glyph_brush_layout::{ab_glyph::*, *};

const MESSAGES: [&str; 3] = ["Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore ", "Lorem ipsum dolor sit amet, consectetur adipis
    
fn fontdue_layout_benchmark(c: &mut Criterion) {
    // Loading
    let font = include_bytes!("../resources/fonts/Roboto-Regular.ttf") as &[u8];
    let roboto_regular = fontdue::Font::from_bytes(font, fontdue::FontSettings::default()).unwrap();
    let mut layout = Layout::new(CoordinateSystem::PositiveYUp);
    layout.reset(&LayoutSettings {
        max_width: Some(200.0),
        ..LayoutSettings::default()
    });
    let fonts = &[roboto_regular];

    let mut group = c.benchmark_group("layout/fontdue");
    group.measurement_time(core::time::Duration::from_secs(4));
    group.sample_size(250);
    for message in MESSAGES.iter() {
        let style = &TextStyle::new(message, 20.0, 0);
        group.bench_with_input(BenchmarkId::from_parameter(message.len()), &message, |b, _| {
            b.iter(|| {
                layout.clear();
                layout.append(fonts, style);
                layout.glyphs().len()
            });
        });
    }
    group.finish();
}