1use std::fmt;
2use std::any::type_name;
3
4
5use crate::_Object;
7use crate::Iterable;
8
9pub fn print<T: fmt::Display>(arg: T) {
11 println!("{}", arg);
12}
13
14pub fn printd<T: fmt::Debug>(arg: T) {
16 println!("{:?}", arg);
17}
18
19
20pub fn dprint<T: fmt::Debug>(arg: T) {
22 dbg!("{}", arg);
23}
24
25pub fn len<T: Iterable>(_object: &T) -> usize {
27 _object.__len__()
28}
29
30pub fn repr<T: _Object>(_object: &T) -> String {
32 _object.__repr__()
33}
34
35pub fn _str<T: _Object>(_object: &T) -> String {
41 _object.__str__()
42}
43
44pub fn type_of<T>(_: &T) -> &str {
46 type_name::<T>()
47}
48
49