ecos-macros 0.1.2

Rust SDK Macros for ECOS StarrySky C1
Documentation
use proc_macro2::TokenStream as TokenStream2;
use quote::quote;

pub fn generate_prelude_imports() -> TokenStream2 {
    let mut imports = TokenStream2::new();

    if cfg!(feature = "prelude") {
        imports.extend(quote! {
            #[allow(unused_imports)]
            pub use core::{
                any, arch, array, ascii, cell, char,
                concat,
                fmt::{self, Debug, Display, Formatter, Result as FmtResult, Write},
                future,
                hash::{BuildHasher, Hash, Hasher},
                hint, iter::{self, DoubleEndedIterator, ExactSizeIterator, Extend, FromIterator, IntoIterator, Iterator},
                marker::{self, Unpin},
                mem, num,
                slice, str, task, time,
            };

            #[allow(unused_imports)]
            pub use core::{assert, assert_eq, assert_ne, debug_assert, debug_assert_eq, debug_assert_ne};
        });
    }

    if cfg!(feature = "alloc") && cfg!(feature = "prelude") {
        imports.extend(quote! {
            #[allow(unused_imports)]
            extern crate alloc;
            #[allow(unused_imports)]
            pub use alloc::{
                borrow::{Cow, ToOwned},
                boxed::Box,
                collections::{BTreeMap, BTreeSet, BinaryHeap, LinkedList, VecDeque},
                ffi::CString,
                format,
                rc::Rc,
                string::{String, ToString},
                sync::Arc,
                vec::{self, Vec},
            };
        });
    }

    if cfg!(feature = "hashbrown") && cfg!(feature = "hashbrown") {
        imports.extend(quote! {
            #[allow(unused_imports)]
            pub use ::ecos_ssc1::hashbrown::{
                HashMap, HashSet, TryReserveError,
                hash_map::{self, Drain, IntoIter, Iter, IterMut, Keys, Values},
                hash_set::{self, Difference, Intersection, Iter as SetIter, Union},
            };
        });
    }

    if cfg!(feature = "prelude-print") {
        imports.extend(quote! {
            pub use ecos_ssc1::{print, println};
        });
    }

    imports
}