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: constructor.rs
    path of file: ./repos/Fyrox/fyrox-ui/src/node
    
    the code of the file until where you have to start completion: //! A special container that is able to create widgets by their type UUID.
use crate::{
    absm::{AbsmEventProvider, AnimationBlendingStateMachine},
    animation::AnimationPlayer,
    bit::BitField,
    border::Border,
    button::Button,
    canvas::Canvas,
    check_box::CheckBox,
    color::gradient::{ColorGradientEditor, ColorGradientField, ColorPoint},
    color::{AlphaBar, ColorField, ColorPicker, HueBar, SaturationBrightnessField},
    core::{parking_lot::Mutex, uuid::Uuid, TypeUuidProvider},
    curve::CurveEditor,
    decorator::Decorator,
    dock::{DockingManager, Tile},
    dropdown_list::DropdownList,
    expander::Expander,
    file_browser::{FileBrowser, FileSelector, FileSelectorField},
    grid::Grid,
    image::Image,
    inspector::Inspector,
    key::{HotKeyEditor, KeyBindingEditor},
    list_view::{ListView, ListViewItem},
    menu::{Menu, MenuItem},
    messagebox::MessageBox,
    nine_patch::NinePatch,
    numeric::NumericUpDown,
    path::PathEditor,
    progress_bar::ProgressBar,
    range::RangeEditor,
    rect::RectEditor,
    screen::Screen,
    scroll_ba
    
    pub fn new() -> Self {
        let container = WidgetConstructorContainer {
            map: Default::default(),
        };

        container.add::<BitField<u8>>();
        container.add::<BitField<i8>>();
        container.add::<BitField<u16>>();
        container.add::<BitField<i16>>();
        container.add::<BitField<u32>>();
        container.add::<BitField<i32>>();
        container.add::<BitField<u64>>();
        container.add::<BitField<i64>>();

        container.add::<Border>();
        container.add::<Button>();
        container.add::<Canvas>();
        container.add::<CheckBox>();
        container.add::<Decorator>();
        container.add::<DropdownList>();
        container.add::<Expander>();
        container.add::<Grid>();
        container.add::<Image>();
        container.add::<HotKeyEditor>();
        container.add::<KeyBindingEditor>();
        container.add::<ListViewItem>();
        container.add::<ListView>();
        container.add::<Menu>();
        container.add::<MenuItem>();
        container.add::<MessageBox>();
        container.add::<NinePatch>();

        container.add::<NumericUpDown<u8>>();
        container.add::<NumericUpDown<i8>>();
        container.add::<NumericUpDown<u16>>();
        container.add::<NumericUpDown<i16>>();
        container.add::<NumericUpDown<u32>>();
        container.add::<NumericUpDown<i32>>();
        container.add::<NumericUpDown<u64>>();
        container.add::<NumericUpDown<i64>>();
        container.add::<NumericUpDown<f32>>();
        container.add::<NumericUpDown<f64>>();

        container.add::<RangeEditor<u8>>();
        container.add::<RangeEditor<i8>>();
        container.add::<RangeEditor<u16>>();
        container.add::<RangeEditor<i16>>();
        container.add::<RangeEditor<u32>>();
        container.add::<RangeEditor<i32>>();
        container.add::<RangeEditor<u64>>();
        container.add::<RangeEditor<i64>>();
        container.add::<RangeEditor<f32>>();
        container.add::<RangeEditor<f64>>();

        container.add::<RectEditor<u8>>();
        container.add::<RectEditor<i8>>();
        container.add::<RectEditor<u16>>();
        container.add::<RectEditor<i16>>();
        container.add::<RectEditor<u32>>();
        container.add::<RectEditor<i32>>();
        container.add::<RectEditor<u64>>();
        container.add::<RectEditor<i64>>();
        container.add::<RectEditor<f32>>();
        container.add::<RectEditor<f64>>();

        container.add::<PathEditor>();
        container.add::<ProgressBar>();
        container.add::<ScrollBar>();
        container.add::<ScrollPanel>();
        container.add::<ScrollViewer>();
        container.add::<SearchBar>();
        container.add::<StackPanel>();
        container.add::<TabControl>();
        container.add::<Tree>();
        container.add::<TreeRoot>();
        container.add::<UuidEditor>();

        container.add::<VectorImage>();
        container.add::<Window>();
        container.add::<WrapPanel>();
        container.add::<ColorGradientField>();
        container.add::<ColorGradientEditor>();
        container.add::<ColorPoint>();

        container.add::<AlphaBar>();
        container.add::<HueBar>();
        container.add::<SaturationBrightnessField>();
        container.add::<ColorPicker>();
        container.add::<ColorField>();

        container.add::<CurveEditor>();
        container.add::<DockingManager>();
        container.add::<Tile>();

        container.add::<FileBrowser>();
        container.add::<FileSelector>();
        container.add::<FileSelectorField>();

        container.add::<Inspector>();

        container.add::<VecEditor<u8, 2>>();
        container.add::<VecEditor<i8, 2>>();
        container.add::<VecEditor<u16, 2>>();
        container.add::<VecEditor<i16, 2>>();
        container.add::<VecEditor<u32, 2>>();
        container.add::<VecEditor<i32, 2>>();
        container.add::<VecEditor<u64, 2>>();
        container.add::<VecEditor<i64, 2>>();
        container.add::<VecEditor<f32, 2>>();
        container.add::<VecEditor<f64, 2>>();

        container.add::<VecEditor<u8, 3>>();
        container.add::<VecEditor<i8, 3>>();
        container.add::<VecEditor<u16, 3>>();
        container.add::<VecEditor<i16, 3>>();
        container.add::<VecEditor<u32, 3>>();
        container.add::<VecEditor<i32, 3>>();
        container.add::<VecEditor<u64, 3>>();
        container.add::<VecEditor<i64, 3>>();
        container.add::<VecEditor<f32, 3>>();
        container.add::<VecEditor<f64, 3>>();

        container.add::<VecEditor<u8, 4>>();
        container.add::<VecEditor<i8, 4>>();
        container.add::<VecEditor<u16, 4>>();
        container.add::<VecEditor<i16, 4>>();
        container.add::<VecEditor<u32, 4>>();
        container.add::<VecEditor<i32, 4>>();
        container.add::<VecEditor<u64, 4>>();
        container.add::<VecEditor<i64, 4>>();
        container.add::<VecEditor<f32, 4>>();
        container.add::<VecEditor<f64, 4>>();

        container.add::<Text>();
        container.add::<TextBox>();
        container.add::<Screen>();
        container.add::<AnimationPlayer>();
        container.add::<AnimationBlendingStateMachine>();
        container.add::<AbsmEventProvider>();
        container.add::<Selector>();

        container
    }