#![allow(unused_must_use)]

use iced::{
    Center, Element, Length, Task, font,
    widget::{column, row},
};
use iced_fonts::{FONTAWESOME_FONT_BYTES, fontawesome::*};

pub fn main() -> iced::Result {
    iced::application(App::new, App::update, App::view)
        .title("fontawesome")
        .run()
}

#[derive(Default)]
struct App {}

#[derive(Debug, Clone, Copy)]
enum Message {
    FontLoaded(Result<(), font::Error>),
}

impl App {
    fn new() -> (Self, Task<Message>) {
        (
            Self {},
            Task::batch(vec![
                font::load(FONTAWESOME_FONT_BYTES).map(Message::FontLoaded),
            ]),
        )
    }

    fn update(&mut self, message: Message) {
        match message {
            Message::FontLoaded(result) => {
                dbg!(result);
            }
        }
    }

    fn view(&self) -> Element<Message> {
        column![
            row![
                space(),
                location_dot(),
                medapps(),
                medrt(),
                microphone_lines(),
                microsoft(),
                mix(),
                mizuni(),
                mobile_button(),
                mobile(),
                mobile_screen(),
                monero(),
                money_bill_one(),
                napster(),
                node_js(),
                npm(),
                nseight(),
                nutritionix(),
                pagefour(),
                palfed(),
                patreon(),
                periscope(),
                phabricator(),
                phoenix_framework(),
                phone_slash(),
                playstation(),
                image_portrait(),
                pushed(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                python(),
                red_river(),
                wpressr(),
                replyd(),
                resolving(),
                rocketchat(),
                rockrms(),
                schlix(),
                searchengin(),
                servicestack(),
                shield_halved(),
                sistrix(),
                speakap(),
                staylinked(),
                steam_symbol(),
                sticker_mule(),
                studiovinari(),
                supple(),
                tablet_button(),
                tablet(),
                gauge_high(),
                ticket_simple(),
                uber(),
                uikit(),
                uniregistry(),
                untappd(),
                user_large(),
                ussunnah(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                vaadin(),
                viber(),
                vimeo(),
                vnv(),
                square_whatsapp(),
                whmcs(),
                wordpress_simple(),
                xbox(),
                yandex(),
                yandex_international(),
                apple_pay(),
                cc_apple_pay(),
                fly(),
                node(),
                osi(),
                react(),
                autoprefixer(),
                less(),
                sass(),
                vuejs(),
                angular(),
                aviato(),
                down_left_and_up_right_to_center(),
                ember(),
                up_right_and_down_left_from_center(),
                gitter(),
                hooli(),
                strava(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                stripe(),
                stripe_s(),
                typothree(),
                amazon_pay(),
                cc_amazon_pay(),
                ethereum(),
                korvue(),
                elementor(),
                baseball_bat_ball(),
                baseball(),
                basketball(),
                bowling_ball(),
                chess(),
                chess_bishop(),
                chess_board(),
                chess_king(),
                chess_knight(),
                chess_pawn(),
                chess_queen(),
                chess_rook(),
                dumbbell(),
                flipboard(),
                football(),
                golf_ball_tee(),
                hips(),
                hockey_puck(),
                php(),
                broom_ball(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                quinscape(),
                square_full(),
                table_tennis_paddle_ball(),
                volleyball(),
                hand_dots(),
                bandage(),
                r#box(),
                boxes_stacked(),
                briefcase_medical(),
                fire_flame_simple(),
                capsules(),
                clipboard_check(),
                clipboard_list(),
                person_dots_from_line(),
                dna(),
                dolly(),
                cart_flatbed(),
                file_medical(),
                file_waveform(),
                kit_medical(),
                circle_h(),
                id_card_clip(),
                notes_medical(),
                pallet(),
                pills(),
                prescription_bottle(),
                prescription_bottle_medical(),
                bed_pulse(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                truck_fast(),
                smoking(),
                syringe(),
                tablets(),
                thermometer_alt(),
                vial(),
                vials(),
                warehouse(),
                weight_scale(),
                x_ray(),
                box_open(),
                comment_slash(),
                couch(),
                circle_dollar_to_slot(),
                dove(),
                hand_holding(),
                hand_holding_heart(),
                hand_holding_dollar(),
                hand_holding_droplet(),
                hands_holding(),
                handshake_angle(),
                handshake_simple(),
                parachute_box(),
                people_carry_box(),
                piggy_bank(),
                readme(),
                ribbon(),
                route(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                seedling(),
                sign_hanging(),
                face_smile_wink(),
                tape(),
                truck_ramp_box(),
                truck_moving(),
                video_slash(),
                wine_glass(),
                java(),
                pied_piper_hat(),
                creative_commons_by(),
                creative_commons_nc(),
                creative_commons_nc_eu(),
                creative_commons_nc_jp(),
                creative_commons_nd(),
                creative_commons_pd(),
                creative_commons_pd_alt(),
                creative_commons_remix(),
                creative_commons_sa(),
                creative_commons_sampling(),
                creative_commons_sampling_plus(),
                creative_commons_share(),
                creative_commons_zero(),
                ebay(),
                keybase(),
                mastodon(),
                r_project(),
                researchgate(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                teamspeak(),
                user_large_slash(),
                user_astronaut(),
                user_check(),
                user_clock(),
                user_gear(),
                user_pen(),
                user_group(),
                user_graduate(),
                user_lock(),
                user_minus(),
                user_ninja(),
                user_shield(),
                user_slash(),
                user_tag(),
                user_tie(),
                users_gear(),
                first_order_alt(),
                fulcrum(),
                galactic_republic(),
                galactic_senate(),
                jedi_order(),
                mandalorian(),
                old_republic(),
                phoenix_squadron(),
                sith(),
                trade_federation(),
                wolf_pack_battalion(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                scale_unbalanced(),
                scale_unbalanced_flip(),
                blender(),
                book_open(),
                tower_broadcast(),
                broom(),
                chalkboard(),
                chalkboard_user(),
                church(),
                coins(),
                compact_disc(),
                crow(),
                crown(),
                dice(),
                dice_five(),
                dice_four(),
                dice_one(),
                dice_six(),
                dice_three(),
                dice_two(),
                divide(),
                door_closed(),
                door_open(),
                equals(),
                feather(),
                frog(),
                gas_pump(),
                glasses(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                greater_than(),
                greater_than_equal(),
                helicopter(),
                infinity(),
                kiwi_bird(),
                receipt(),
                robot(),
                ruler(),
                ruler_combined(),
                ruler_horizontal(),
                ruler_vertical(),
                school(),
                screwdriver(),
                shoe_prints(),
                skull(),
                ban_smoking(),
                store(),
                shop(),
                bars_staggered(),
                stroopwafel(),
                toolbox(),
                shirt(),
                person_walking(),
                wallet(),
                face_angry(),
                archway(),
                book_atlas(),
                award(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                delete_left(),
                bezier_curve(),
                bong(),
                brush(),
                bus_simple(),
                cannabis(),
                check_double(),
                martini_glass_citrus(),
                bell_concierge(),
                cookie(),
                cookie_bite(),
                crop_simple(),
                tachograph_digital(),
                face_dizzy(),
                compass_drafting(),
                drum(),
                drum_steelpan(),
                feather_pointed(),
                file_contract(),
                file_arrow_down(),
                file_export(),
                file_import(),
                file_invoice(),
                file_invoice_dollar(),
                file_prescription(),
                file_signature(),
                file_arrow_up(),
                fill(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                fill_drip(),
                fingerprint(),
                fish(),
                face_flushed(),
                face_frown_open(),
                martini_glass(),
                earth_africa(),
                earth_americas(),
                earth_asia(),
                face_grimace(),
                face_grin(),
                face_grin_wide(),
                face_grin_beam(),
                face_grin_beam_sweat(),
                face_grin_hearts(),
                face_grin_squint(),
                face_grin_squint_tears(),
                face_grin_stars(),
                face_grin_tears(),
                face_grin_tongue(),
                face_grin_tongue_squint(),
                face_grin_tongue_wink(),
                face_grin_wink(),
                grip(),
                grip_vertical(),
                headphones_simple(),
                headset(),
                highlighter(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                hornbill(),
                hot_tub_person(),
                hotel_building(),
                joint(),
                face_kiss(),
                face_kiss_beam(),
                face_kiss_wink_heart(),
                face_laugh(),
                face_laugh_beam(),
                face_laugh_squint(),
                face_laugh_wink(),
                cart_flatbed_suitcase(),
                mailchimp(),
                map_location(),
                map_location_dot(),
                marker(),
                medal(),
                megaport(),
                face_meh_blank(),
                face_rolling_eyes(),
                monument(),
                mortar_pestle(),
                nimblr(),
                paint_roller(),
                passport(),
                pen_fancy(),
                pen_nib(),
                pen_ruler(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                plane_arrival(),
                plane_departure(),
                prescription(),
                rev(),
                face_sad_cry(),
                face_sad_tear(),
                shopware(),
                van_shuttle(),
                signature(),
                face_smile_beam(),
                solar_panel(),
                spa(),
                splotch(),
                spray_can(),
                squarespace(),
                stamp(),
                star_half_stroke(),
                suitcase_rolling(),
                face_surprise(),
                swatchbook(),
                person_swimming(),
                water_ladder(),
                themeco(),
                droplet_slash(),
                face_tired(),
                tooth(),
                umbrella_beach(),
                vector_square(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                weebly(),
                weight_hanging(),
                wine_glass_empty(),
                wix(),
                spray_can_sparkles(),
                apple_whole(),
                atom(),
                bone(),
                book_open_reader(),
                brain(),
                car_rear(),
                car_battery(),
                car_burst(),
                car_side(),
                charging_station(),
                diamond_turn_right(),
                draw_polygon(),
                ello(),
                hackerrank(),
                kaggle(),
                laptop_code(),
                layer_group(),
                location_crosshairs(),
                lungs(),
                markdown(),
                microscope(),
                neos(),
                oil_can(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                poop(),
                shapes(),
                star_of_life(),
                gauge(),
                gauge_simple(),
                teeth(),
                teeth_open(),
                masks_theater(),
                traffic_light(),
                truck_monster(),
                truck_pickup(),
                zhihu(),
                rectangle_ad(),
                alipay(),
                ankh(),
                book_bible(),
                business_time(),
                city(),
                comment_dollar(),
                comments_dollar(),
                cross(),
                dharmachakra(),
                envelope_open_text(),
                folder_minus(),
                folder_plus(),
                filter_circle_dollar(),
                gopuram(),
                hamsa(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                bahai(),
                jedi(),
                book_journal_whills(),
                kaaba(),
                khanda(),
                landmark(),
                envelopes_bulk(),
                menorah(),
                mosque(),
                om(),
                spaghetti_monster_flying(),
                peace(),
                place_of_worship(),
                square_poll_vertical(),
                square_poll_horizontal(),
                person_praying(),
                hands_praying(),
                book_quran(),
                magnifying_glass_dollar(),
                magnifying_glass_location(),
                socks(),
                square_root_variable(),
                star_and_crescent(),
                star_of_david(),
                synagogue(),
                the_red_yeti(),
                scroll_torah(),
                torii_gate(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
            row![
                vihara(),
                volume_xmark(),
                yin_yang(),
                blender_phone(),
                book_skull(),
                campground(),
                cat(),
                chair(),
                cloud_moon(),
                cloud_sun(),
                cow(),
                critical_role(),
                d_and_d_beyond(),
                dev(),
                dice_dtwozero(),
                dice_dsix(),
                dog(),
                dragon(),
                drumstick_bite(),
                dungeon(),
                fantasy_flight_games(),
                file_csv(),
                hand_fist(),
                ghost(),
                hammer(),
                hanukiah(),
                hat_wizard(),
                person_hiking(),
            ]
            .padding(12)
            .spacing(20)
            .width(Length::Fill)
            .align_y(Center),
        ]
        .into()
    }
}
