pub fn uu_app() -> Commanddiff --git a/dev/search-index.js b/dev/search-index.js
index 3407d4881..1c3d7ee0f 100644
--- a/dev/search-index.js
+++ b/dev/search-index.js
@@ -131,7 +131,7 @@ var searchIndex = JSON.parse('{\
"uu_fmt":{"doc":"","t":[6,3,11,11,11,11,11,11,11,5,5],"n":["FileOrStdReader","FmtOptions","borrow","borrow_mut","from","into","try_from","try_into","type_id","uu_app","uumain"],"q":["uu_fmt","","","","","","","","","",""],"d":["","","","","Returns the argument unchanged.","Calls U::from(self).","","","","",""],"i":[0,0,6,6,6,6,6,6,6,0,0],"f":[0,0,[[]],[[]],[[]],[[]],[[],1],[[],1],[[],2],[[],3],[4,5]],"p":[[4,"Result"],[3,"TypeId"],[3,"Command"],[8,"Args"],[15,"i32"],[3,"FmtOptions"]]},\
"uu_fold":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_fold",""],"d":["",""],"i":[0,0],"f":[[[],1],[2,3]],"p":[[3,"Command"],[8,"Args"],[15,"i32"]]},\
"uu_groups":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_groups",""],"d":["",""],"i":[0,0],"f":[[[],1],[2,3]],"p":[[3,"Command"],[8,"Args"],[15,"i32"]]},\
-"uu_hashsum":{"doc":"","t":[5,5,5,5,5],"n":["uu_app_b3sum","uu_app_bits","uu_app_common","uu_app_custom","uumain"],"q":["uu_hashsum","","","",""],"d":["","","","",""],"i":[0,0,0,0,0],"f":[[[],1],[[],1],[[],1],[[],1],[2,3]],"p":[[3,"Command"],[8,"Args"],[15,"i32"]]},\
+"uu_hashsum":{"doc":"","t":[5,5,5,5,5,5],"n":["uu_app_b3sum","uu_app_bits","uu_app_common","uu_app_custom","uu_app_length","uumain"],"q":["uu_hashsum","","","","",""],"d":["","","","","",""],"i":[0,0,0,0,0,0],"f":[[[],1],[[],1],[[],1],[[],1],[[],1],[2,3]],"p":[[3,"Command"],[8,"Args"],[15,"i32"]]},\
"uu_head":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_head",""],"d":["",""],"i":[0,0],"f":[[[],1],[2,3]],"p":[[3,"Command"],[8,"Args"],[15,"i32"]]},\
"uu_hostid":{"doc":"","t":[5,5,5],"n":["gethostid","uu_app","uumain"],"q":["uu_hostid","",""],"d":["","",""],"i":[0,0,0],"f":[0,[[],1],[2,3]],"p":[[3,"Command"],[8,"Args"],[15,"i32"]]},\
"uu_hostname":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_hostname",""],"d":["",""],"i":[0,0],"f":[[[],1],[2,3]],"p":[[3,"Command"],[8,"Args"],[15,"i32"]]},\
@@ -202,7 +202,7 @@ var searchIndex = JSON.parse('{\
"uu_who":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_who",""],"d":["",""],"i":[0,0],"f":[[[],1],[2,3]],"p":[[3,"Command"],[8,"Args"],[15,"i32"]]},\
"uu_whoami":{"doc":"","t":[5,5],"n":["uu_app","uumain"],"q":["uu_whoami",""],"d":["",""],"i":[0,0],"f":[[[],1],[2,3]],"p":[[3,"Command"],[8,"Args"],[15,"i32"]]},\
"uu_yes":{"doc":"","t":[5,5,5],"n":["exec","uu_app","uumain"],"q":["uu_yes","",""],"d":["","",""],"i":[0,0,0],"f":[[[],1],[[],2],[3,4]],"p":[[6,"Result"],[3,"Command"],[8,"Args"],[15,"i32"]]},\
-"uucore":{"doc":"","t":[8,5,0,14,11,11,14,14,0,0,0,0,5,5,0,0,5,14,14,14,14,0,23,0,0,0,0,0,0,0,0,0,0,14,0,0,5,0,5,14,14,14,14,0,0,14,5,0,0,13,17,7,4,13,4,13,13,13,13,13,0,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,7,7,7,5,5,5,8,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,10,11,11,11,11,11,13,13,13,13,13,13,13,3,13,4,6,13,4,4,13,13,13,11,11,11,11,11,11,11,11,11,11,5,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,3,8,3,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,12,12,5,5,11,11,10,11,11,11,11,12,12,11,11,11,11,11,11,11,11,12,5,12,12,12,12,5,3,3,8,8,8,3,6,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,10,12,12,11,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,14,11,11,11,10,13,3,13,13,4,13,13,13,4,11,11,11,11,11,11,5,11,11,11,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,14,11,5,11,11,11,11,5,5,11,5,5,11,11,11,11,11,11,11,11,11,11,11,8,8,3,3,3,3,5,5,10,11,12,12,12,10,10,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,10,11,10,11,11,11,11,10,11,12,10,11,11,11,11,11,10,11,12,12,12,10,11,11,10,5,5,5,5,12,5,3,3,5,5,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,5,11,11,11,11,5,5,5,5,5,5,5,5,5,5,5,13,13,4,3,13,12,12,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,5,13,13,13,3,13,13,4,13,13,13,4,13,13,13,3,4,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,12,12,12,0,11,11,11,11,12,12,11,11,11,11,11,11,11,12,11,11,11,11,11,12,0,12,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,3,8,3,5,5,12,12,5,5,10,12,12,12,5,12,12,12,12,5,17,17,17,17,17,17,17,0,0,0,0,17,17,17,17,17,17,17,17,17,17,17,6,6,11,5,5,5,5,8,5,5,5,5,10,10,10,13,13,13,13,4,4,13,13,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,3,11,11,11,5,5,11,11,11,11,11,12,11,12,11,11,11,11,3,11,11,12,11,11,11,11,11,11,11,11,7,7,5,5,5,5,5,3,3,3,3,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,7,17,17,17,17,17,17,17,17,17,17,17,3,3,11,11,11,11,11,11,5,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,5,5],"n":["Args","args_os","backup_control","bin","collect_ignore","collect_lossy","crash","crash_if_err","display","encoding","entries","error","execution_phrase","format_usage","fs","fsext","get_utility_is_second_arg","has","help_about","help_section","help_usage","lines","main","memo","mode","os","panic","parse_glob","parse_size","parse_time","perms","pipes","process","prompt_yes","quoting_style","ranges","read_yes","ringbuffer","set_utility_is_second_arg","show","show_error","show_if_err","show_warning","signals","sum","uio_error","util_name","utmpx","version_cmp","AmbiguousArgument","BACKUP_CONTROL_LONG_HELP","BACKUP_CONTROL_VALUES","BackupError","BackupImpossible","BackupMode","ExistingBackup","InvalidArgument","NoBackup","NumberedBackup","SimpleBackup","arguments","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","code","determine_backup_mode","determine_backup_suffix","eq","eq","fmt","fmt","fmt","from","from","get_backup_path","into","into","provide","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","usage","OPT_BACKUP","OPT_BACKUP_NO_ARG","OPT_SUFFIX","backup","backup_no_args","suffix","Quotable","Quoted","borrow","borrow_mut","clone","clone_into","external","fmt","fmt","force","from","from","into","maybe_quote","maybe_quote","native","native_raw","print_verbatim","println_verbatim","quote","to_owned","to_string","try_from","try_into","type_id","Base16","Base2Lsbf","Base2Msbf","Base32","Base32Hex","Base64","Base64Url","Data","Decode","DecodeError","DecodeResult","DecodeZ85","EncodeError","Format","Io","Z85","Z85InputLenNotMultipleOf4","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","decode","decode","encode","encode","fmt","fmt","from","from","from","from","from","from","from","ignore_garbage","into","into","into","into","line_wrap","new","provide","source","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","wrap_print","wrap_write","Group","Locate","Passwd","belongs_to","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","fmt","fmt","from","from","get_groups","get_groups_gnu","gid","gid","gid2grp","grp2gid","into","into","locate","locate","locate","locate","locate","name","name","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","uid","uid2usr","user_dir","user_info","user_passwd","user_shell","usr2uid","ClapErrorWrapper","ExitCode","FromIo","UClapError","UError","UIoError","UResult","USimpleError","UUsageError","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","code","code","code","code","code","code","code","code","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_exit_code","into","into","into","into","into","map_err_context","message","message","new","new","new","new","provide","provide","provide","provide","provide","set_exit_code","strip_errno","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","uio_error","usage","usage","usage","with_exit_code","Existing","FileInformation","Logical","Missing","MissingHandling","None","Normal","Physical","ResolveMode","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","canonicalize","clone","clone","clone_into","clone_into","dir_strip_dot_for_creation","display_permissions","display_permissions_unix","eq","eq","eq","file_size","fmt","fmt","from","from","from","from_file","from_path","has","hash","infos_refer_to_same_file","inode","into","into","into","make_path_relative_to","normalize_path","number_of_links","paths_refer_to_same_file","resolve_relative_path","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","BirthTime","FsMeta","FsUsage","MountInfo","StatFs","StatFs","StatFs","StatFs","avail_blocks","avail_blocks","bavail","bavail_top_bit_set","bfree","birth","block_size","block_size","blocks","blocksize","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","dev_id","dev_name","dummy","eq","f_bavail","f_bavail","f_bavail","f_bavail","f_bfree","f_bfree","f_bfree","f_bfree","f_blocks","f_blocks","f_blocks","f_blocks","f_bsize","f_bsize","f_bsize","f_bsize","f_ffree","f_ffree","f_ffree","f_ffree","f_files","f_files","f_files","f_files","f_frsize","f_frsize","f_frsize","f_frsize","f_fsid","f_fsid","f_fsid","f_fsid","f_namelen","f_namelen","f_namelen","f_namelen","f_type","f_type","f_type","f_type","ffree","files","fmt","fmt","fmt","free_blocks","free_blocks","free_file_nodes","free_file_nodes","from","from","from","fs_type","fs_type","fs_type","fsid","fsid","hash","into","into","into","io_size","io_size","mount_dir","mount_option","mount_root","namelen","namelen","new","pretty_birth","pretty_filetype","pretty_fstype","pretty_time","read_fs_list","remote","statfs","statfs_fn","statfs_fn","statfs_fn","statfs_fn","to_owned","to_owned","to_owned","total_blocks","total_blocks","total_file_nodes","total_file_nodes","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","Lines","borrow","borrow_mut","from","into","into_iter","lines","next","try_from","try_into","type_id","printf","sprintf","get_umask","parse_mode","parse_numeric","parse_symbolic","strip_minus_from_mode","is_wsl_1","is_wsl_2","mute_sigpipe_panic","from_str","InvalidSuffix","ParseFailure","ParseSizeError","Parser","SizeTooBig","allow_list","b_byte_count","borrow","borrow","borrow_mut","borrow_mut","capital_b_bytes","default","default_unit","description","eq","fmt","fmt","from","from","into","into","parse","parse_size","provide","to_string","try_from","try_from","try_into","try_into","type_id","type_id","with_allow_list","with_b_byte_count","with_default_unit","from_str","All","All","Changes","ChownExecutor","First","Group","IfFrom","None","Normal","Silent","TraverseSymlinks","User","UserGroup","Verbose","Verbosity","VerbosityLevel","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chown_base","clone","clone","clone_into","clone_into","dereference","dest_gid","dest_uid","entries","eq","eq","eq","exec","files","filter","fmt","fmt","from","from","from","from","from","groups_only","into","into","into","into","into","level","options","preserve_root","recursive","to_owned","to_owned","traverse_symlinks","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verbosity","wrap_chown","Group","Locate","Passwd","get_groups","get_groups_gnu","gid","gid","gid2grp","grp2gid","locate","name","name","uid","uid2usr","user_dir","user_info","user_passwd","user_shell","usr2uid","ARG_FILES","ARG_GROUP","ARG_OWNER","FROM","HELP","RECURSIVE","REFERENCE","dereference","preserve_root","traverse","verbosity","DEREFERENCE","NO_DEREFERENCE","NO_PRESERVE","PRESERVE","EVERY","NO_TRAVERSE","TRAVERSE","CHANGES","QUIET","SILENT","VERBOSE","Error","Result","map_err_context","pipe","splice","splice_exact","vmsplice","ChildExt","getegid","geteuid","getgid","getuid","send_signal","send_signal_group","wait_or_timeout","C","Double","Literal","None","Quotes","QuotingStyle","Shell","Single","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","escape_name","from","from","into","into","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","always_quote","escape","quotes","show_control","show_control","Range","borrow","borrow_mut","cmp","complement","contain","eq","fmt","from","from_list","from_str","high","into","low","partial_cmp","try_from","try_into","type_id","RingBuffer","borrow","borrow_mut","data","from","from_iter","into","new","push_back","try_from","try_into","type_id","ALL_SIGNALS","DEFAULT_SIGNAL","enable_pipe_errors","ignore_interrupts","is_signal","signal_by_name_or_value","signal_name_by_value","BSD","Blake2b","Blake3","CRC","Digest","DigestWriter","Md5","SYSV","Sha1","Sha224","Sha256","Sha384","Sha3_224","Sha3_256","Sha3_384","Sha3_512","Sha512","Shake128","Shake256","Sm3","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","div_ceil","finalize","flush","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bytes","output_bytes","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","result_str","result_str","result_str","result_str","result_str","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","write","ACCOUNTING","BOOT_TIME","DEAD_PROCESS","DEFAULT_FILE","EMPTY","INIT_PROCESS","LOGIN_PROCESS","NEW_TIME","OLD_TIME","RUN_LVL","USER_PROCESS","UT_HOSTSIZE","UT_IDSIZE","UT_LINESIZE","UT_NAMESIZE","Utmpx","UtmpxIter","borrow","borrow","borrow_mut","borrow_mut","canon_host","drop","endutxent","exit_status","from","from","getutxent","host","into","into","into_inner","into_iter","is_user_process","iter_all_records","iter_all_records_from","login_time","next","pid","record_type","setutxent","terminal_suffix","try_from","try_from","try_into","try_into","tty_device","type_id","type_id","user","utmpxname","version_cmp"],"q":["uucore","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::backup_control","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::backup_control::arguments","","","","","","uucore::display","","","","","","","","","","","","","","","","","","","","","","","","","uucore::encoding","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::entries","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::fs","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::fsext","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::lines","","","","","","","","","","","uucore::memo","","uucore::mode","","","","","uucore::os","","uucore::panic","uucore::parse_glob","uucore::parse_size","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::parse_time","uucore::perms","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::perms::entries","","","","","","","","","","","","","","","","","","","uucore::perms::options","","","","","","","","","","","uucore::perms::options::dereference","","uucore::perms::options::preserve_root","","uucore::perms::options::traverse","","","uucore::perms::options::verbosity","","","","uucore::pipes","","","","","","","uucore::process","","","","","","","","uucore::quoting_style","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::quoting_style::QuotingStyle","","","","","uucore::ranges","","","","","","","","","","","","","","","","","","uucore::ringbuffer","","","","","","","","","","","","uucore::signals","","","","","","","uucore::sum","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::utmpx","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::version_cmp"],"d":["","","Implement GNU-style backup functionality.","","Collects the iterator into a Vec<String>, removing any …","Collects the iterator into a Vec<String>, lossily …","Display an error and std::process::exit","Unwrap a std::result::Result, crashing instead of …","","","Get password/group file entry","All utils return exit with an exit code. Usually, the …","Derive the complete execution phrase for “usage”.","Generate the usage string for clap.","Set of functions to manage files and symlinks","Set of functions to manage file systems","","","Get the about text from the help file.","Reads a section from a file of the util as a str literal.","Get the usage from the help file.","Iterate over lines, including the line ending character(s).","","Main entry point for our implementation of printf.","Set of functions to parse modes","","Custom panic hooks that allow silencing certain types of …","Parsing a glob Pattern from a string.","","Parsing a duration from a string.","Common functions to manage permissions","","Set of functions to manage IDs","Prompt the user with a formatted string and returns true …","","","Read a line from stdin and check whether the first …","A fixed-size ring buffer.","","Display a crate::error::UError and set global exit code.","Show an error to stderr in a similar style to GNU …","Display an error and set global exit code in error case.","Print a warning message to stderr.","","Implementations of digest functions, like md5 and sha1.","Shorthand to construct UIoError-instances.","Derive the utility name.","Aims to provide platform-independent methods to obtain …","","An ambiguous argument (e.g. ‘n’) was given as backup …","","","Backup error types.","Currently unused","Available backup modes.","Argument ‘existing’, ‘nil’","An invalid argument (e.g. ‘foo’) was given as backup …","Argument ‘none’, ‘off’","Argument ‘numbered’, ‘t’","Argument ‘simple’, ‘never’","Arguments for backup-related functionality.","","","","","","","","Determine the “mode” for the backup operation to …","Obtain the suffix to use for a backup.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","‘–backup’ argument","‘-b’ argument","‘-S, –suffix’ argument","An extension trait to apply quoting to strings.","A wrapper around string types for displaying with quoting …","","","","","When quoting for PowerShell, toggle whether to quote for …","","","Toggle forced quoting. If true, quotes are added even if …","","Returns the argument unchanged.","Calls U::from(self).","Like quote(), but don’t actually add quotes unless …","Like quote(), but don’t actually add quotes unless …","Quote a string with the default style for the platform.","Quote an OsStr with the default style for the platform.","Like println_verbatim, without the trailing newline.","Print a path (or OsStr-like object) directly to stdout, …","Returns an object that implements Display for printing …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Fetch desired entry.","","This is a wrapper function for libc::getgrouplist.","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","From: …","The list of group IDs returned from GNU’s groups and GNU…","AKA passwd.pw_gid","AKA group.gr_gid","","","Calls U::from(self).","Calls U::from(self).","","","","","","AKA passwd.pw_name","AKA group.gr_name","","","","","","","","","AKA passwd.pw_uid","","AKA passwd.pw_dir","AKA passwd.pw_gecos","AKA passwd.pw_passwd","AKA passwd.pw_shell","","A wrapper for clap::Error that implements UError","A special error type that does not print any message when …","Enables the conversion from std::io::Error to UError and …","Extension trait for clap::Error to adjust the exit code.","Custom errors defined by the utils and uucore.","Wrapper type around std::io::Error.","Result type that should be returned by all utils.","A simple error type with an exit code and a message that …","","","","","","","","","","","","Error code of a custom error.","Error code of a custom error.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Get the last exit code set with set_exit_code. The default …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","Set the exit code for the program if uumain returns Ok(()).","Strip the trailing “ (os error XX)“ from io error …","","","","","","","","","","","","","","","","","","","","","Shorthand to construct UIoError-instances.","Print usage help to a custom error.","Print usage help to a custom error.","","","Resolve symbolic links, ignoring errors on the final …","Information to uniquely identify a file","Resolve ‘..’ elements before symlinks","Resolve symbolic links, ignoring errors on the non-final …","Controls how symbolic links should be handled when …","Do not resolve any symbolic links.","Return an error if any part of the path is missing.","Resolve symlinks as encountered when processing the path","Controls when symbolic links are resolved","","","","","","","Return the canonical, absolute form of a path.","","","","","For some programs like install or mkdir, dir/. can be …","Display the permissions of a file On non unix like system, …","Display the permissions of a file on a unix like system","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get information from a currently open file","Get information for a given path.","","","Checks if p1 and p2 are the same file information. If …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Converts absolute path to be relative to absolute to path.","Normalize a path by removing relative information For …","","Checks if p1 and p2 are the same file. If error happens …","resolve a relative path","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","Read file system list.","","","","","","","","","","","","","","","","","","","","","","","An iterator over the lines of an instance of BufRead.","","","Returns the argument unchanged.","Calls U::from(self).","","Returns an iterator over the lines, including line ending …","","","","","Write a formatted string to stdout.","Create a new formatted string.","","","","","","Test if the program is running under WSL","","Terminate without error on panics that occur due to broken …","Parse a glob Pattern from a string.","","","","Parser for sizes in SI or IEC units (multiples of 1000 or …","","Whitelist for the suffix","Whether to treat “b” as a “byte count” instead of …","","","","","Whether to treat the suffix “B” as meaning “bytes”.","","Default unit when no suffix is provided","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Parse a size string into a number of bytes.","Parse a size string into a number of bytes.","","","","","","","","","","","","Parse a duration from a string.","","","","","","","","","","","","","","","","The various level of verbosity","","","","","","","","","","","Base implementation for chgrp and chown.","","","","","","","","Get password/group file entry","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","Perform the change of owner on a path with the various …","","Fetch desired entry.","","From: …","The list of group IDs returned from GNU’s groups and GNU…","AKA passwd.pw_gid","AKA group.gr_gid","","","","AKA passwd.pw_name","AKA group.gr_name","AKA passwd.pw_uid","","AKA passwd.pw_dir","AKA passwd.pw_gecos","AKA passwd.pw_passwd","AKA passwd.pw_shell","","","","","","","","","","","","","","","","","","","","","","","","Nix’s main error type.","Nix Result Type","","A wrapper around nix::unistd::pipe that ensures the pipe …","Less noisy wrapper around nix::fcntl::splice.","Splice wrapper which fully finishes the write.","Copy data from bytes into target, which must be a pipe.","Missing methods for Child objects","getegid() returns the effective group ID of the calling …","geteuid() returns the effective user ID of the calling …","getgid() returns the real group ID of the calling process.","getuid() returns the real user ID of the calling process.","Send a signal to a Child process.","Send a signal to a process group.","Wait for a process to finish or return after the specified …","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Test if at least one of the given Ranges contain the …","","","Returns the argument unchanged.","","Parse a string of the form a-b into a Range","","Calls U::from(self).","","","","","","A fixed-size ring buffer backed by a VecDeque.","","","","Returns the argument unchanged.","","Calls U::from(self).","","Append a value to the end of the ring buffer.","","","","","","","","","","","","","","","","A struct that writes to a digest.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Iterator of login records","","","","","Canonicalize host name using DNS","","","A.K.A. ut.ut_exit","Returns the argument unchanged.","Returns the argument unchanged.","","A.K.A. ut.ut_host","Calls U::from(self).","Calls U::from(self).","Consumes the Utmpx, returning the underlying C struct utmpx","","","Iterate through all the utmp records.","Iterate through all the utmp records from a specific file.","A.K.A. ut.ut_tv","","A.K.A. ut.ut_pid","A.K.A. ut.ut_type","","A.K.A. ut.ut_id","","","","","A.K.A. ut.ut_line","","","A.K.A. ut.ut_user","",""],"i":[0,0,0,0,74,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,6,7,6,6,6,0,6,7,6,7,6,6,7,0,0,6,7,6,7,7,6,7,0,6,7,7,6,7,6,7,6,7,6,7,7,0,0,0,0,0,0,0,0,20,20,20,20,20,20,20,20,20,20,20,111,111,20,20,0,0,111,20,20,20,20,20,25,25,25,25,25,25,25,0,30,0,0,30,0,0,30,25,29,29,28,30,25,29,28,30,25,25,25,0,28,0,28,30,30,29,28,30,30,30,30,25,28,29,28,30,25,28,28,30,30,25,30,29,28,30,25,29,28,30,25,29,28,30,25,0,0,0,0,0,37,37,39,37,39,37,39,37,39,37,39,37,39,0,0,37,39,0,0,37,39,112,37,37,39,39,37,39,37,39,37,39,37,39,37,39,37,0,37,37,37,37,0,0,0,0,0,0,0,0,0,0,42,43,46,44,45,42,43,46,44,45,50,50,42,43,44,45,42,43,42,42,43,43,46,46,44,44,45,45,42,43,46,46,46,44,45,0,42,43,46,44,45,113,42,43,42,43,46,44,42,43,46,44,45,0,0,42,43,46,44,45,42,43,46,44,45,42,43,46,44,45,42,43,46,44,45,0,50,50,43,114,53,0,54,53,0,54,53,54,0,57,53,54,57,53,54,0,53,54,53,54,0,0,0,57,53,54,57,53,54,57,53,54,57,57,0,57,0,57,57,53,54,0,0,57,0,0,53,54,57,53,54,57,53,54,57,53,54,0,0,0,0,0,0,0,0,115,61,64,64,64,116,115,61,64,64,63,64,61,63,64,61,63,64,61,63,64,61,63,63,63,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,64,64,63,64,61,115,61,115,61,63,64,61,115,61,63,115,61,61,63,64,61,115,61,63,63,63,115,61,64,116,0,0,0,0,63,0,0,0,0,0,63,64,61,115,61,115,61,63,64,61,63,64,61,63,64,61,0,66,66,66,66,66,0,66,66,66,66,0,0,0,0,0,0,0,0,0,0,0,71,71,0,0,71,70,70,70,71,70,71,70,70,70,71,71,71,71,70,71,70,71,70,0,71,71,70,71,70,71,70,71,70,70,70,0,117,77,75,0,77,117,0,77,75,75,0,117,117,75,0,0,117,78,75,76,77,117,78,75,76,77,0,75,76,75,76,78,78,78,0,75,76,77,78,78,78,75,76,117,78,75,76,77,76,117,78,75,76,77,76,0,78,78,75,76,78,117,78,75,76,77,117,78,75,76,77,117,78,75,76,77,78,0,0,0,0,0,0,37,39,0,0,112,37,39,37,0,37,37,37,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,118,118,118,82,81,82,81,0,0,82,81,82,81,82,81,81,81,0,82,81,82,81,81,82,81,82,81,82,81,119,119,120,119,121,0,83,83,83,0,0,83,83,83,83,83,83,83,83,83,83,83,83,0,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,0,87,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,122,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,122,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,122,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,122,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,122,122,122,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,122,122,91,92,93,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,107,106,107,106,107,0,106,106,107,0,106,106,107,106,107,106,106,106,106,107,106,106,0,106,106,107,106,107,106,106,107,106,0,0],"f":[0,[[],1],0,0,[[],[[3,[2]]]],[[],[[3,[2]]]],0,0,0,0,0,0,[[],4],[4,2],0,0,[[],5],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],5],0,[[]],0,0,0,0,0,0,0,[[],4],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[6,6],[[]],[7,8],[9,[[10,[6]]]],[9,2],[[6,6],5],[[7,7],5],[[6,11],12],[[7,11],12],[[7,11],12],[[]],[[]],[[6,13,4],[[15,[14]]]],[[]],[[]],[16],[[]],[[],2],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[7,5],0,0,0,[[],19],[[],19],[[],19],0,0,[[]],[[]],[20,20],[[]],[[20,5],20],[[20,11],[[17,[21]]]],[[20,11],[[17,[21]]]],[[20,5],20],[[],20],[[]],[[]],[[],20],[[],20],[4,20],[22,20],[[[23,[22]]],24],[[[23,[22]]],24],[[],20],[[]],[[],2],[[],17],[[],17],[[],18],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[25,25],[[]],[25,26],[[[28,[27]]],26],[25,[[17,[2,29]]]],[[[28,[27]]],[[17,[2,29]]]],[[30,11],12],[[30,11],12],[[]],[[]],[31,30],[32,30],[[]],[33,30],[[]],[[[28,[27]],5],[[28,[27]]]],[[]],[[]],[[]],[[]],[[[28,[27]],34],[[28,[27]]]],[[27,25],[[28,[27]]]],[16],[30,[[15,[35]]]],[[]],[[],2],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],[[],18],[[28,4]],[[36,34,4],24],0,0,0,[37,[[3,[38]]]],[[]],[[]],[[]],[[]],[37,37],[39,39],[[]],[[]],[[37,11],12],[[39,11],12],[[]],[[]],[[],[[24,[[3,[38]]]]]],[[[15,[40]]],[[24,[[3,[38]]]]]],0,0,[38,[[24,[2]]]],[4,[[24,[38]]]],[[]],[[]],[[],24],[41,[[24,[37]]]],[4,[[24,[37]]]],[4,[[24,[39]]]],[38,[[24,[39]]]],0,0,[[]],[[]],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],0,[41,[[24,[2]]]],0,0,0,0,[4,[[24,[41]]]],0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],8],[[],8],[42,8],[43,8],[44,8],[45,8],0,0,[[42,11],12],[[42,11],[[17,[21]]]],[[43,11],[[17,[21]]]],[[43,11],12],[[46,11],[[17,[21]]]],[[46,11],12],[[44,11],[[17,[21]]]],[[44,11],12],[[45,11],[[17,[21]]]],[[45,11],12],[[]],[[]],[[]],[33,46],[47,46],[[]],[[]],[[],8],[[]],[[]],[[]],[[]],[[]],[48],0,0,[[8,[49,[2]]],[[51,[50]]]],[[8,[49,[2]]],[[51,[50]]]],[[52,[49,[2]]],[[51,[50]]]],[8,[[51,[50]]]],[16],[16],[16],[16],[16],[8],[33,2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],[[],18],[[],18],0,[[],5],[[],5],[43,5],[8],0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[[23,[13]],53,54],[[24,[14]]]],[53,53],[54,54],[[]],[[]],[13,14],[[55,5],2],[[56,5],2],[[57,57],5],[[53,53],5],[[54,54],5],[57,58],[[53,11],12],[[54,11],12],[[]],[[]],[[]],[[],[[24,[57]]]],[[[23,[13]],5],[[24,[57]]]],0,[57],[[[24,[57]],[24,[57]]],5],[57,58],[[]],[[]],[[]],[[[23,[13]],[23,[13]]],14],[13,14],[57,58],[[[23,[13]],[23,[13]],5],5],[13,[[59,[13]]]],[[]],[[]],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],0,0,0,0,0,0,[[60,61],8],[[60,61],8],[[],58],[61,58],0,0,0,[[],58],[[],62],[61,62],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[63,63],[64,64],[61,61],[[]],[[]],[[]],0,0,0,[[61,61],5],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[63,11],12],[[64,11],12],[[61,11],[[17,[21]]]],[[],58],[61,58],[[],58],[61,58],[[]],[[]],[[]],[[],62],[61,62],0,[[],58],[61,58],[61],[[]],[[]],[[]],[[],58],[61,58],0,0,0,[[],58],[61,58],[61,64],[[],2],[[56,58],4],[62,[[59,[4]]]],[[62,62],2],[[],[[17,[[3,[63]],33]]]],0,[[],[[17,[61,2]]]],0,0,[[60,61],8],[[60,61],8],[[]],[[]],[[]],[[],58],[61,58],[[],58],[61,58],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],0,[[]],[[]],[[]],[[]],[[]],[65,66],[[[66,[67]]],[[15,[[24,[[3,[65]]]]]]]],[[],17],[[],17],[[],18],[4,10],[4,[[10,[2]]]],[[],40],[4,[[17,[56,2]]]],[[40,4,5],[[17,[40,2]]]],[[40,4,40,5],[[17,[40,2]]]],[3,5],[[],5],[[],5],[[]],[4,[[17,[68,69]]]],0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],0,[[],70],0,[71,4],[[71,71],5],[[71,11],[[17,[21]]]],[[71,11],12],[[]],[[]],[[]],[[]],[[70,4],[[17,[58,71]]]],[4,[[17,[58,71]]]],[16],[[],2],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[70,70],[[70,5],70],[[70,4],70],[4,[[17,[72,2]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[73,74,4,5],10],[75,75],[76,76],[[]],[[]],0,0,0,0,[[75,75],5],[[76,76],5],[[77,77],5],[78,10],0,0,[[75,11],12],[[76,11],12],[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[]],0,0,0,0,[[]],[[]],0,[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],[[],18],[[],18],0,[[[23,[13]],55,[15,[40]],[15,[40]],5,76],[[17,[2,2]]]],0,0,0,[[],[[24,[[3,[38]]]]]],[[[15,[40]]],[[24,[[3,[38]]]]]],0,0,[38,[[24,[2]]]],[4,[[24,[38]]]],[[],24],0,0,0,[41,[[24,[2]]]],0,0,0,0,[4,[[24,[41]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[47,48],10],[[],79],[34,[[79,[34]]]],[34,79],[[],[[79,[34]]]],0,[[],38],[[],41],[[],38],[[],41],[34,24],[34,24],[72,[[24,[[15,[80]]]]]],0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[81,81],[[]],[[22,82],2],[[]],[[]],[[]],[[]],[[]],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],0,0,0,0,0,0,[[]],[[]],[[83,83],84],[[],[[3,[83]]]],[34,5],[[83,83],5],[[83,11],12],[[]],[4,[[17,[[3,[83]],2]]]],[4,[[17,[83,4]]]],0,[[]],0,[[83,83],[[15,[84]]]],[[],17],[[],17],[[],18],0,[[]],[[]],0,[[]],[[1,34],85],[[]],[34,85],[85,15],[[],17],[[],17],[[],18],0,0,[[],[[17,[86]]]],[[],[[17,[86]]]],[34,5],[4,[[15,[34]]]],[34,[[15,[4]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[34,34],34],[87,5],[87,24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[88],[89],[90],[91],[92],[93],[94],[95],[96],[97],[98],[99],[100],[101],[102],[103],[104],[105],[[]],[88],[89],[90],[91],[92],[93],[94],[95],[96],[97],[98],[99],[100],[101],[102],[103],[104],[105],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],88],[[],89],[[],90],[[],91],[[],92],[[],93],[[],94],[[],95],[[],96],[[],97],[[],98],[[],99],[[],100],[[],101],[[],102],[[],103],[[],104],[[],105],[[51,5],87],[[],34],[88,34],[89,34],[90,34],[91,34],[92,34],[93,34],[94,34],[95,34],[96,34],[97,34],[98,34],[99,34],[100,34],[101,34],[102,34],[103,34],[104,34],[105,34],[[],34],[[],34],[[]],[88],[89],[90],[91],[92],[93],[94],[95],[96],[97],[98],[99],[100],[101],[102],[103],[104],[105],[[],2],[[],2],[91,2],[92,2],[93,2],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[87,[[24,[34]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[106,[[24,[2]]]],[107],[[]],[106],[[]],[[]],[[],108],[106,2],[[]],[[]],[106,108],[[]],[106,5],[[],107],[[[23,[13]]],107],[106,109],[107,15],[106,8],[106,110],[[]],[106,2],[[],17],[[],17],[[],17],[[],17],[106,2],[[],18],[[],18],[106,2],[60,8],[[4,4],84]],"p":[[8,"Iterator"],[3,"String"],[3,"Vec"],[15,"str"],[15,"bool"],[4,"BackupMode"],[4,"BackupError"],[15,"i32"],[3,"ArgMatches"],[6,"UResult"],[3,"Formatter"],[6,"Result"],[3,"Path"],[3,"PathBuf"],[4,"Option"],[3,"Demand"],[4,"Result"],[3,"TypeId"],[3,"Arg"],[3,"Quoted"],[3,"Error"],[3,"OsStr"],[8,"AsRef"],[6,"Result"],[4,"Format"],[6,"DecodeResult"],[8,"Read"],[3,"Data"],[4,"EncodeError"],[4,"DecodeError"],[3,"DecodeError"],[4,"DecodeError"],[3,"Error"],[15,"usize"],[8,"Error"],[8,"Write"],[3,"Passwd"],[6,"gid_t"],[3,"Group"],[15,"u32"],[6,"uid_t"],[3,"USimpleError"],[3,"UUsageError"],[3,"ExitCode"],[3,"ClapErrorWrapper"],[3,"UIoError"],[6,"Error"],[8,"FnOnce"],[8,"Into"],[8,"UError"],[3,"Box"],[4,"ErrorKind"],[4,"MissingHandling"],[4,"ResolveMode"],[3,"Metadata"],[6,"mode_t"],[3,"FileInformation"],[15,"u64"],[4,"Cow"],[15,"i8"],[3,"statfs_fn"],[15,"i64"],[3,"MountInfo"],[3,"FsUsage"],[15,"u8"],[3,"Lines"],[8,"BufRead"],[3,"Pattern"],[3,"PatternError"],[3,"Parser"],[4,"ParseSizeError"],[3,"Duration"],[3,"Command"],[8,"Args"],[4,"VerbosityLevel"],[3,"Verbosity"],[4,"TraverseSymlinks"],[3,"ChownExecutor"],[6,"Result"],[3,"ExitStatus"],[4,"Quotes"],[4,"QuotingStyle"],[3,"Range"],[4,"Ordering"],[3,"RingBuffer"],[4,"Errno"],[3,"DigestWriter"],[3,"Blake2b"],[3,"Blake3"],[3,"Sm3"],[3,"CRC"],[3,"BSD"],[3,"SYSV"],[3,"Md5"],[3,"Sha1"],[3,"Sha224"],[3,"Sha256"],[3,"Sha384"],[3,"Sha512"],[3,"Sha3_224"],[3,"Sha3_256"],[3,"Sha3_384"],[3,"Sha3_512"],[3,"Shake128"],[3,"Shake256"],[3,"Utmpx"],[3,"UtmpxIter"],[3,"utmpx"],[3,"OffsetDateTime"],[15,"i16"],[8,"Quotable"],[8,"Locate"],[8,"FromIo"],[8,"UClapError"],[8,"FsMeta"],[8,"BirthTime"],[4,"IfFrom"],[8,"ChildExt"],[13,"Shell"],[13,"C"],[13,"Literal"],[8,"Digest"]]},\
+"uucore":{"doc":"","t":[8,5,0,14,11,11,14,14,0,0,0,0,5,5,0,0,5,14,14,14,14,0,23,0,0,0,0,0,0,0,0,0,0,14,0,0,5,0,5,14,14,14,14,0,0,14,5,0,0,13,17,7,4,13,4,13,13,13,13,13,0,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,7,7,7,5,5,5,8,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,10,11,11,11,11,11,13,13,13,13,13,13,13,3,13,4,6,13,4,4,13,13,13,11,11,11,11,11,11,11,11,11,11,5,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,3,8,3,11,11,11,11,11,11,11,11,11,11,11,11,11,5,5,12,12,5,5,11,11,10,11,11,11,11,12,12,11,11,11,11,11,11,11,11,12,5,12,12,12,12,5,3,3,8,8,8,3,6,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,10,12,12,11,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,14,11,11,11,10,13,3,13,13,4,13,13,13,4,11,11,11,11,11,11,5,11,11,11,11,5,5,5,11,11,11,11,11,11,11,11,11,11,11,14,11,5,11,11,11,11,5,5,11,5,5,11,11,11,11,11,11,11,11,11,11,11,8,8,3,3,3,3,5,5,10,11,12,12,12,10,10,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,10,11,10,11,11,11,11,10,11,12,10,11,11,11,11,11,10,11,12,12,12,10,11,11,10,5,5,5,5,12,5,3,3,5,5,11,11,11,10,11,10,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,5,11,11,11,11,5,5,5,5,5,5,5,5,5,5,5,13,13,4,3,13,12,12,11,11,11,11,12,11,12,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,5,13,13,13,3,13,13,4,13,13,13,4,13,13,13,3,4,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,12,12,12,0,11,11,11,11,12,12,11,11,11,11,11,11,11,12,11,11,11,11,11,12,0,12,12,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,3,8,3,5,5,12,12,5,5,10,12,12,12,5,12,12,12,12,5,17,17,17,17,17,17,17,0,0,0,0,17,17,17,17,17,17,17,17,17,17,17,6,6,11,5,5,5,5,8,5,5,5,5,10,10,10,13,13,13,13,4,4,13,13,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,3,11,11,11,5,5,11,11,11,11,11,12,11,12,11,11,11,11,3,11,11,12,11,11,11,11,11,11,11,11,7,7,5,5,5,5,5,3,3,3,3,8,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,17,17,17,7,17,17,17,17,17,17,17,17,17,17,17,3,3,11,11,11,11,11,11,5,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,5,5],"n":["Args","args_os","backup_control","bin","collect_ignore","collect_lossy","crash","crash_if_err","display","encoding","entries","error","execution_phrase","format_usage","fs","fsext","get_utility_is_second_arg","has","help_about","help_section","help_usage","lines","main","memo","mode","os","panic","parse_glob","parse_size","parse_time","perms","pipes","process","prompt_yes","quoting_style","ranges","read_yes","ringbuffer","set_utility_is_second_arg","show","show_error","show_if_err","show_warning","signals","sum","uio_error","util_name","utmpx","version_cmp","AmbiguousArgument","BACKUP_CONTROL_LONG_HELP","BACKUP_CONTROL_VALUES","BackupError","BackupImpossible","BackupMode","ExistingBackup","InvalidArgument","NoBackup","NumberedBackup","SimpleBackup","arguments","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","code","determine_backup_mode","determine_backup_suffix","eq","eq","fmt","fmt","fmt","from","from","get_backup_path","into","into","provide","to_owned","to_string","try_from","try_from","try_into","try_into","type_id","type_id","usage","OPT_BACKUP","OPT_BACKUP_NO_ARG","OPT_SUFFIX","backup","backup_no_args","suffix","Quotable","Quoted","borrow","borrow_mut","clone","clone_into","external","fmt","fmt","force","from","from","into","maybe_quote","maybe_quote","native","native_raw","print_verbatim","println_verbatim","quote","to_owned","to_string","try_from","try_into","type_id","Base16","Base2Lsbf","Base2Msbf","Base32","Base32Hex","Base64","Base64Url","Data","Decode","DecodeError","DecodeResult","DecodeZ85","EncodeError","Format","Io","Z85","Z85InputLenNotMultipleOf4","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","decode","decode","encode","encode","fmt","fmt","from","from","from","from","from","from","from","ignore_garbage","into","into","into","into","line_wrap","new","provide","source","to_owned","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","wrap_print","wrap_write","Group","Locate","Passwd","belongs_to","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","fmt","fmt","from","from","get_groups","get_groups_gnu","gid","gid","gid2grp","grp2gid","into","into","locate","locate","locate","locate","locate","name","name","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","uid","uid2usr","user_dir","user_info","user_passwd","user_shell","usr2uid","ClapErrorWrapper","ExitCode","FromIo","UClapError","UError","UIoError","UResult","USimpleError","UUsageError","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","code","code","code","code","code","code","code","code","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","get_exit_code","into","into","into","into","into","map_err_context","message","message","new","new","new","new","provide","provide","provide","provide","provide","set_exit_code","strip_errno","to_string","to_string","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","uio_error","usage","usage","usage","with_exit_code","Existing","FileInformation","Logical","Missing","MissingHandling","None","Normal","Physical","ResolveMode","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","canonicalize","clone","clone","clone_into","clone_into","dir_strip_dot_for_creation","display_permissions","display_permissions_unix","eq","eq","eq","file_size","fmt","fmt","from","from","from","from_file","from_path","has","hash","infos_refer_to_same_file","inode","into","into","into","make_path_relative_to","normalize_path","number_of_links","paths_refer_to_same_file","resolve_relative_path","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","BirthTime","FsMeta","FsUsage","MountInfo","StatFs","StatFs","StatFs","StatFs","avail_blocks","avail_blocks","bavail","bavail_top_bit_set","bfree","birth","block_size","block_size","blocks","blocksize","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","dev_id","dev_name","dummy","eq","f_bavail","f_bavail","f_bavail","f_bavail","f_bfree","f_bfree","f_bfree","f_bfree","f_blocks","f_blocks","f_blocks","f_blocks","f_bsize","f_bsize","f_bsize","f_bsize","f_ffree","f_ffree","f_ffree","f_ffree","f_files","f_files","f_files","f_files","f_frsize","f_frsize","f_frsize","f_frsize","f_fsid","f_fsid","f_fsid","f_fsid","f_namelen","f_namelen","f_namelen","f_namelen","f_type","f_type","f_type","f_type","ffree","files","fmt","fmt","fmt","free_blocks","free_blocks","free_file_nodes","free_file_nodes","from","from","from","fs_type","fs_type","fs_type","fsid","fsid","hash","into","into","into","io_size","io_size","mount_dir","mount_option","mount_root","namelen","namelen","new","pretty_birth","pretty_filetype","pretty_fstype","pretty_time","read_fs_list","remote","statfs","statfs_fn","statfs_fn","statfs_fn","statfs_fn","to_owned","to_owned","to_owned","total_blocks","total_blocks","total_file_nodes","total_file_nodes","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","Lines","borrow","borrow_mut","from","into","into_iter","lines","next","try_from","try_into","type_id","printf","sprintf","get_umask","parse_mode","parse_numeric","parse_symbolic","strip_minus_from_mode","is_wsl_1","is_wsl_2","mute_sigpipe_panic","from_str","InvalidSuffix","ParseFailure","ParseSizeError","Parser","SizeTooBig","allow_list","b_byte_count","borrow","borrow","borrow_mut","borrow_mut","capital_b_bytes","default","default_unit","description","eq","fmt","fmt","from","from","into","into","parse","parse_size","provide","to_string","try_from","try_from","try_into","try_into","type_id","type_id","with_allow_list","with_b_byte_count","with_default_unit","from_str","All","All","Changes","ChownExecutor","First","Group","IfFrom","None","Normal","Silent","TraverseSymlinks","User","UserGroup","Verbose","Verbosity","VerbosityLevel","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","chown_base","clone","clone","clone_into","clone_into","dereference","dest_gid","dest_uid","entries","eq","eq","eq","exec","files","filter","fmt","fmt","from","from","from","from","from","groups_only","into","into","into","into","into","level","options","preserve_root","recursive","to_owned","to_owned","traverse_symlinks","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","verbosity","wrap_chown","Group","Locate","Passwd","get_groups","get_groups_gnu","gid","gid","gid2grp","grp2gid","locate","name","name","uid","uid2usr","user_dir","user_info","user_passwd","user_shell","usr2uid","ARG_FILES","ARG_GROUP","ARG_OWNER","FROM","HELP","RECURSIVE","REFERENCE","dereference","preserve_root","traverse","verbosity","DEREFERENCE","NO_DEREFERENCE","NO_PRESERVE","PRESERVE","EVERY","NO_TRAVERSE","TRAVERSE","CHANGES","QUIET","SILENT","VERBOSE","Error","Result","map_err_context","pipe","splice","splice_exact","vmsplice","ChildExt","getegid","geteuid","getgid","getuid","send_signal","send_signal_group","wait_or_timeout","C","Double","Literal","None","Quotes","QuotingStyle","Shell","Single","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","escape_name","from","from","into","into","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","always_quote","escape","quotes","show_control","show_control","Range","borrow","borrow_mut","cmp","complement","contain","eq","fmt","from","from_list","from_str","high","into","low","partial_cmp","try_from","try_into","type_id","RingBuffer","borrow","borrow_mut","data","from","from_iter","into","new","push_back","try_from","try_into","type_id","ALL_SIGNALS","DEFAULT_SIGNAL","enable_pipe_errors","ignore_interrupts","is_signal","signal_by_name_or_value","signal_name_by_value","BSD","Blake2b","Blake3","CRC","Digest","DigestWriter","Md5","SYSV","Sha1","Sha224","Sha256","Sha384","Sha3_224","Sha3_256","Sha3_384","Sha3_512","Sha512","Shake128","Shake256","Sm3","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","div_ceil","finalize","flush","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_finalize","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","hash_update","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","into","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","new","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bits","output_bytes","output_bytes","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","reset","result_str","result_str","result_str","result_str","result_str","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","with_output_bytes","write","ACCOUNTING","BOOT_TIME","DEAD_PROCESS","DEFAULT_FILE","EMPTY","INIT_PROCESS","LOGIN_PROCESS","NEW_TIME","OLD_TIME","RUN_LVL","USER_PROCESS","UT_HOSTSIZE","UT_IDSIZE","UT_LINESIZE","UT_NAMESIZE","Utmpx","UtmpxIter","borrow","borrow","borrow_mut","borrow_mut","canon_host","drop","endutxent","exit_status","from","from","getutxent","host","into","into","into_inner","into_iter","is_user_process","iter_all_records","iter_all_records_from","login_time","next","pid","record_type","setutxent","terminal_suffix","try_from","try_from","try_into","try_into","tty_device","type_id","type_id","user","utmpxname","version_cmp"],"q":["uucore","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::backup_control","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::backup_control::arguments","","","","","","uucore::display","","","","","","","","","","","","","","","","","","","","","","","","","uucore::encoding","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::entries","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::error","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::fs","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::fsext","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::lines","","","","","","","","","","","uucore::memo","","uucore::mode","","","","","uucore::os","","uucore::panic","uucore::parse_glob","uucore::parse_size","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::parse_time","uucore::perms","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::perms::entries","","","","","","","","","","","","","","","","","","","uucore::perms::options","","","","","","","","","","","uucore::perms::options::dereference","","uucore::perms::options::preserve_root","","uucore::perms::options::traverse","","","uucore::perms::options::verbosity","","","","uucore::pipes","","","","","","","uucore::process","","","","","","","","uucore::quoting_style","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::quoting_style::QuotingStyle","","","","","uucore::ranges","","","","","","","","","","","","","","","","","","uucore::ringbuffer","","","","","","","","","","","","uucore::signals","","","","","","","uucore::sum","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::utmpx","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","uucore::version_cmp"],"d":["","","Implement GNU-style backup functionality.","","Collects the iterator into a Vec<String>, removing any …","Collects the iterator into a Vec<String>, lossily …","Display an error and std::process::exit","Unwrap a std::result::Result, crashing instead of …","","","Get password/group file entry","All utils return exit with an exit code. Usually, the …","Derive the complete execution phrase for “usage”.","Generate the usage string for clap.","Set of functions to manage files and symlinks","Set of functions to manage file systems","","","Get the about text from the help file.","Reads a section from a file of the util as a str literal.","Get the usage from the help file.","Iterate over lines, including the line ending character(s).","","Main entry point for our implementation of printf.","Set of functions to parse modes","","Custom panic hooks that allow silencing certain types of …","Parsing a glob Pattern from a string.","","Parsing a duration from a string.","Common functions to manage permissions","","Set of functions to manage IDs","Prompt the user with a formatted string and returns true …","","","Read a line from stdin and check whether the first …","A fixed-size ring buffer.","","Display a crate::error::UError and set global exit code.","Show an error to stderr in a similar style to GNU …","Display an error and set global exit code in error case.","Print a warning message to stderr.","","Implementations of digest functions, like md5 and sha1.","Shorthand to construct UIoError-instances.","Derive the utility name.","Aims to provide platform-independent methods to obtain …","","An ambiguous argument (e.g. ‘n’) was given as backup …","","","Backup error types.","Currently unused","Available backup modes.","Argument ‘existing’, ‘nil’","An invalid argument (e.g. ‘foo’) was given as backup …","Argument ‘none’, ‘off’","Argument ‘numbered’, ‘t’","Argument ‘simple’, ‘never’","Arguments for backup-related functionality.","","","","","","","","Determine the “mode” for the backup operation to …","Obtain the suffix to use for a backup.","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","‘–backup’ argument","‘-b’ argument","‘-S, –suffix’ argument","An extension trait to apply quoting to strings.","A wrapper around string types for displaying with quoting …","","","","","When quoting for PowerShell, toggle whether to quote for …","","","Toggle forced quoting. If true, quotes are added even if …","","Returns the argument unchanged.","Calls U::from(self).","Like quote(), but don’t actually add quotes unless …","Like quote(), but don’t actually add quotes unless …","Quote a string with the default style for the platform.","Quote an OsStr with the default style for the platform.","Like println_verbatim, without the trailing newline.","Print a path (or OsStr-like object) directly to stdout, …","Returns an object that implements Display for printing …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Fetch desired entry.","","This is a wrapper function for libc::getgrouplist.","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","From: …","The list of group IDs returned from GNU’s groups and GNU…","AKA passwd.pw_gid","AKA group.gr_gid","","","Calls U::from(self).","Calls U::from(self).","","","","","","AKA passwd.pw_name","AKA group.gr_name","","","","","","","","","AKA passwd.pw_uid","","AKA passwd.pw_dir","AKA passwd.pw_gecos","AKA passwd.pw_passwd","AKA passwd.pw_shell","","A wrapper for clap::Error that implements UError","A special error type that does not print any message when …","Enables the conversion from std::io::Error to UError and …","Extension trait for clap::Error to adjust the exit code.","Custom errors defined by the utils and uucore.","Wrapper type around std::io::Error.","Result type that should be returned by all utils.","A simple error type with an exit code and a message that …","","","","","","","","","","","","Error code of a custom error.","Error code of a custom error.","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Get the last exit code set with set_exit_code. The default …","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","Set the exit code for the program if uumain returns Ok(()).","Strip the trailing “ (os error XX)“ from io error …","","","","","","","","","","","","","","","","","","","","","Shorthand to construct UIoError-instances.","Print usage help to a custom error.","Print usage help to a custom error.","","","Resolve symbolic links, ignoring errors on the final …","Information to uniquely identify a file","Resolve ‘..’ elements before symlinks","Resolve symbolic links, ignoring errors on the non-final …","Controls how symbolic links should be handled when …","Do not resolve any symbolic links.","Return an error if any part of the path is missing.","Resolve symlinks as encountered when processing the path","Controls when symbolic links are resolved","","","","","","","Return the canonical, absolute form of a path.","","","","","For some programs like install or mkdir, dir/. can be …","Display the permissions of a file On non unix like system, …","Display the permissions of a file on a unix like system","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get information from a currently open file","Get information for a given path.","","","Checks if p1 and p2 are the same file information. If …","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Converts absolute path to be relative to absolute to path.","Normalize a path by removing relative information For …","","Checks if p1 and p2 are the same file. If error happens …","resolve a relative path","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","Read file system list.","","","","","","","","","","","","","","","","","","","","","","","An iterator over the lines of an instance of BufRead.","","","Returns the argument unchanged.","Calls U::from(self).","","Returns an iterator over the lines, including line ending …","","","","","Write a formatted string to stdout.","Create a new formatted string.","","","","","","Test if the program is running under WSL","","Terminate without error on panics that occur due to broken …","Parse a glob Pattern from a string.","","","","Parser for sizes in SI or IEC units (multiples of 1000 or …","","Whitelist for the suffix","Whether to treat “b” as a “byte count” instead of …","","","","","Whether to treat the suffix “B” as meaning “bytes”.","","Default unit when no suffix is provided","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Parse a size string into a number of bytes.","Parse a size string into a number of bytes.","","","","","","","","","","","","Parse a duration from a string.","","","","","","","","","","","","","","","","The various level of verbosity","","","","","","","","","","","Base implementation for chgrp and chown.","","","","","","","","Get password/group file entry","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","Perform the change of owner on a path with the various …","","Fetch desired entry.","","From: …","The list of group IDs returned from GNU’s groups and GNU…","AKA passwd.pw_gid","AKA group.gr_gid","","","","AKA passwd.pw_name","AKA group.gr_name","AKA passwd.pw_uid","","AKA passwd.pw_dir","AKA passwd.pw_gecos","AKA passwd.pw_passwd","AKA passwd.pw_shell","","","","","","","","","","","","","","","","","","","","","","","","Nix’s main error type.","Nix Result Type","","A wrapper around nix::unistd::pipe that ensures the pipe …","Less noisy wrapper around nix::fcntl::splice.","Splice wrapper which fully finishes the write.","Copy data from bytes into target, which must be a pipe.","Missing methods for Child objects","getegid() returns the effective group ID of the calling …","geteuid() returns the effective user ID of the calling …","getgid() returns the real group ID of the calling process.","getuid() returns the real user ID of the calling process.","Send a signal to a Child process.","Send a signal to a process group.","Wait for a process to finish or return after the specified …","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","Test if at least one of the given Ranges contain the …","","","Returns the argument unchanged.","","Parse a string of the form a-b into a Range","","Calls U::from(self).","","","","","","A fixed-size ring buffer backed by a VecDeque.","","","","Returns the argument unchanged.","","Calls U::from(self).","","Append a value to the end of the ring buffer.","","","","","","","","","","","","first element of the tuple is the blake2b state second is …","","","","A struct that writes to a digest.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Return a new Blake2b instance with a custom output bytes …","","","","","","","","","","","","","","","","","","Iterator of login records","","","","","Canonicalize host name using DNS","","","A.K.A. ut.ut_exit","Returns the argument unchanged.","Returns the argument unchanged.","","A.K.A. ut.ut_host","Calls U::from(self).","Calls U::from(self).","Consumes the Utmpx, returning the underlying C struct utmpx","","","Iterate through all the utmp records.","Iterate through all the utmp records from a specific file.","A.K.A. ut.ut_tv","","A.K.A. ut.ut_pid","A.K.A. ut.ut_type","","A.K.A. ut.ut_id","","","","","A.K.A. ut.ut_line","","","A.K.A. ut.ut_user","",""],"i":[0,0,0,0,74,74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,7,0,0,0,7,0,6,7,6,6,6,0,6,7,6,7,6,6,7,0,0,6,7,6,7,7,6,7,0,6,7,7,6,7,6,7,6,7,6,7,7,0,0,0,0,0,0,0,0,20,20,20,20,20,20,20,20,20,20,20,111,111,20,20,0,0,111,20,20,20,20,20,25,25,25,25,25,25,25,0,30,0,0,30,0,0,30,25,29,29,28,30,25,29,28,30,25,25,25,0,28,0,28,30,30,29,28,30,30,30,30,25,28,29,28,30,25,28,28,30,30,25,30,29,28,30,25,29,28,30,25,29,28,30,25,0,0,0,0,0,37,37,39,37,39,37,39,37,39,37,39,37,39,0,0,37,39,0,0,37,39,112,37,37,39,39,37,39,37,39,37,39,37,39,37,39,37,0,37,37,37,37,0,0,0,0,0,0,0,0,0,0,42,43,46,44,45,42,43,46,44,45,50,50,42,43,44,45,42,43,42,42,43,43,46,46,44,44,45,45,42,43,46,46,46,44,45,0,42,43,46,44,45,113,42,43,42,43,46,44,42,43,46,44,45,0,0,42,43,46,44,45,42,43,46,44,45,42,43,46,44,45,42,43,46,44,45,0,50,50,43,114,53,0,54,53,0,54,53,54,0,57,53,54,57,53,54,0,53,54,53,54,0,0,0,57,53,54,57,53,54,57,53,54,57,57,0,57,0,57,57,53,54,0,0,57,0,0,53,54,57,53,54,57,53,54,57,53,54,0,0,0,0,0,0,0,0,115,61,64,64,64,116,115,61,64,64,63,64,61,63,64,61,63,64,61,63,64,61,63,63,63,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,64,64,63,64,61,115,61,115,61,63,64,61,115,61,63,115,61,61,63,64,61,115,61,63,63,63,115,61,64,116,0,0,0,0,63,0,0,0,0,0,63,64,61,115,61,115,61,63,64,61,63,64,61,63,64,61,0,66,66,66,66,66,0,66,66,66,66,0,0,0,0,0,0,0,0,0,0,0,71,71,0,0,71,70,70,70,71,70,71,70,70,70,71,71,71,71,70,71,70,71,70,0,71,71,70,71,70,71,70,71,70,70,70,0,117,77,75,0,77,117,0,77,75,75,0,117,117,75,0,0,117,78,75,76,77,117,78,75,76,77,0,75,76,75,76,78,78,78,0,75,76,77,78,78,78,75,76,117,78,75,76,77,76,117,78,75,76,77,76,0,78,78,75,76,78,117,78,75,76,77,117,78,75,76,77,117,78,75,76,77,78,0,0,0,0,0,0,37,39,0,0,112,37,39,37,0,37,37,37,37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,47,0,0,0,0,0,0,0,0,0,118,118,118,82,81,82,81,0,0,82,81,82,81,82,81,81,81,0,82,81,82,81,81,82,81,82,81,82,81,119,119,120,119,121,0,83,83,83,0,0,83,83,83,83,83,83,83,83,83,83,83,83,0,85,85,85,85,85,85,85,85,85,85,85,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,0,87,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,122,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,122,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,122,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,122,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,122,122,122,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,122,122,91,92,93,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,87,88,87,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,106,107,106,107,106,107,0,106,106,107,0,106,106,107,106,107,106,106,106,106,107,106,106,0,106,106,107,106,107,106,106,107,106,0,0],"f":[0,[[],1],0,0,[[],[[3,[2]]]],[[],[[3,[2]]]],0,0,0,0,0,0,[[],4],[4,2],0,0,[[],5],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[],5],0,[[]],0,0,0,0,0,0,0,[[],4],0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[6,6],[[]],[7,8],[9,[[10,[6]]]],[9,2],[[6,6],5],[[7,7],5],[[6,11],12],[[7,11],12],[[7,11],12],[[]],[[]],[[6,13,4],[[15,[14]]]],[[]],[[]],[16],[[]],[[],2],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[7,5],0,0,0,[[],19],[[],19],[[],19],0,0,[[]],[[]],[20,20],[[]],[[20,5],20],[[20,11],[[17,[21]]]],[[20,11],[[17,[21]]]],[[20,5],20],[[],20],[[]],[[]],[[],20],[[],20],[4,20],[22,20],[[[23,[22]]],24],[[[23,[22]]],24],[[],20],[[]],[[],2],[[],17],[[],17],[[],18],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[25,25],[[]],[25,26],[[[28,[27]]],26],[25,[[17,[2,29]]]],[[[28,[27]]],[[17,[2,29]]]],[[30,11],12],[[30,11],12],[[]],[[]],[31,30],[32,30],[[]],[33,30],[[]],[[[28,[27]],5],[[28,[27]]]],[[]],[[]],[[]],[[]],[[[28,[27]],34],[[28,[27]]]],[[27,25],[[28,[27]]]],[16],[30,[[15,[35]]]],[[]],[[],2],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],[[],18],[[28,4]],[[36,34,4],24],0,0,0,[37,[[3,[38]]]],[[]],[[]],[[]],[[]],[37,37],[39,39],[[]],[[]],[[37,11],12],[[39,11],12],[[]],[[]],[[],[[24,[[3,[38]]]]]],[[[15,[40]]],[[24,[[3,[38]]]]]],0,0,[38,[[24,[2]]]],[4,[[24,[38]]]],[[]],[[]],[[],24],[41,[[24,[37]]]],[4,[[24,[37]]]],[4,[[24,[39]]]],[38,[[24,[39]]]],0,0,[[]],[[]],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],0,[41,[[24,[2]]]],0,0,0,0,[4,[[24,[41]]]],0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],8],[[],8],[42,8],[43,8],[44,8],[45,8],0,0,[[42,11],12],[[42,11],[[17,[21]]]],[[43,11],[[17,[21]]]],[[43,11],12],[[46,11],[[17,[21]]]],[[46,11],12],[[44,11],[[17,[21]]]],[[44,11],12],[[45,11],[[17,[21]]]],[[45,11],12],[[]],[[]],[[]],[33,46],[47,46],[[]],[[]],[[],8],[[]],[[]],[[]],[[]],[[]],[48],0,0,[[8,[49,[2]]],[[51,[50]]]],[[8,[49,[2]]],[[51,[50]]]],[[52,[49,[2]]],[[51,[50]]]],[8,[[51,[50]]]],[16],[16],[16],[16],[16],[8],[33,2],[[],2],[[],2],[[],2],[[],2],[[],2],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],[[],18],[[],18],0,[[],5],[[],5],[43,5],[8],0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[[23,[13]],53,54],[[24,[14]]]],[53,53],[54,54],[[]],[[]],[13,14],[[55,5],2],[[56,5],2],[[57,57],5],[[53,53],5],[[54,54],5],[57,58],[[53,11],12],[[54,11],12],[[]],[[]],[[]],[[],[[24,[57]]]],[[[23,[13]],5],[[24,[57]]]],0,[57],[[[24,[57]],[24,[57]]],5],[57,58],[[]],[[]],[[]],[[[23,[13]],[23,[13]]],14],[13,14],[57,58],[[[23,[13]],[23,[13]],5],5],[13,[[59,[13]]]],[[]],[[]],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],0,0,0,0,0,0,[[60,61],8],[[60,61],8],[[],58],[61,58],0,0,0,[[],58],[[],62],[61,62],0,0,[[]],[[]],[[]],[[]],[[]],[[]],[63,63],[64,64],[61,61],[[]],[[]],[[]],0,0,0,[[61,61],5],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[63,11],12],[[64,11],12],[[61,11],[[17,[21]]]],[[],58],[61,58],[[],58],[61,58],[[]],[[]],[[]],[[],62],[61,62],0,[[],58],[61,58],[61],[[]],[[]],[[]],[[],58],[61,58],0,0,0,[[],58],[61,58],[61,64],[[],2],[[56,58],4],[62,[[59,[4]]]],[[62,62],2],[[],[[17,[[3,[63]],33]]]],0,[[],[[17,[61,2]]]],0,0,[[60,61],8],[[60,61],8],[[]],[[]],[[]],[[],58],[61,58],[[],58],[61,58],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],0,[[]],[[]],[[]],[[]],[[]],[65,66],[[[66,[67]]],[[15,[[24,[[3,[65]]]]]]]],[[],17],[[],17],[[],18],[4,10],[4,[[10,[2]]]],[[],40],[4,[[17,[56,2]]]],[[40,4,5],[[17,[40,2]]]],[[40,4,40,5],[[17,[40,2]]]],[3,5],[[],5],[[],5],[[]],[4,[[17,[68,69]]]],0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],0,[[],70],0,[71,4],[[71,71],5],[[71,11],[[17,[21]]]],[[71,11],12],[[]],[[]],[[]],[[]],[[70,4],[[17,[58,71]]]],[4,[[17,[58,71]]]],[16],[[],2],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[70,70],[[70,5],70],[[70,4],70],[4,[[17,[72,2]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[73,74,4,5],10],[75,75],[76,76],[[]],[[]],0,0,0,0,[[75,75],5],[[76,76],5],[[77,77],5],[78,10],0,0,[[75,11],12],[[76,11],12],[[]],[[]],[[]],[[]],[[]],0,[[]],[[]],[[]],[[]],[[]],0,0,0,0,[[]],[[]],0,[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],[[],18],[[],18],0,[[[23,[13]],55,[15,[40]],[15,[40]],5,76],[[17,[2,2]]]],0,0,0,[[],[[24,[[3,[38]]]]]],[[[15,[40]]],[[24,[[3,[38]]]]]],0,0,[38,[[24,[2]]]],[4,[[24,[38]]]],[[],24],0,0,0,[41,[[24,[2]]]],0,0,0,0,[4,[[24,[41]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[47,48],10],[[],79],[34,[[79,[34]]]],[34,79],[[],[[79,[34]]]],0,[[],38],[[],41],[[],38],[[],41],[34,24],[34,24],[72,[[24,[[15,[80]]]]]],0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[81,81],[[]],[[22,82],2],[[]],[[]],[[]],[[]],[[]],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],0,0,0,0,0,0,[[]],[[]],[[83,83],84],[[],[[3,[83]]]],[34,5],[[83,83],5],[[83,11],12],[[]],[4,[[17,[[3,[83]],2]]]],[4,[[17,[83,4]]]],0,[[]],0,[[83,83],[[15,[84]]]],[[],17],[[],17],[[],18],0,[[]],[[]],0,[[]],[[1,34],85],[[]],[34,85],[85,15],[[],17],[[],17],[[],18],0,0,[[],[[17,[86]]]],[[],[[17,[86]]]],[34,5],[4,[[15,[34]]]],[34,[[15,[4]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[34,34],34],[87,5],[87,24],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[88],[89],[90],[91],[92],[93],[94],[95],[96],[97],[98],[99],[100],[101],[102],[103],[104],[105],[[]],[88],[89],[90],[91],[92],[93],[94],[95],[96],[97],[98],[99],[100],[101],[102],[103],[104],[105],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],88],[[],89],[[],90],[[],91],[[],92],[[],93],[[],94],[[],95],[[],96],[[],97],[[],98],[[],99],[[],100],[[],101],[[],102],[[],103],[[],104],[[],105],[[51,5],87],[[],34],[88,34],[89,34],[90,34],[91,34],[92,34],[93,34],[94,34],[95,34],[96,34],[97,34],[98,34],[99,34],[100,34],[101,34],[102,34],[103,34],[104,34],[105,34],[[],34],[[],34],[[]],[88],[89],[90],[91],[92],[93],[94],[95],[96],[97],[98],[99],[100],[101],[102],[103],[104],[105],[[],2],[[],2],[91,2],[92,2],[93,2],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],17],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[[],18],[34,88],[87,[[24,[34]]]],0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,[[]],[[]],[[]],[[]],[106,[[24,[2]]]],[107],[[]],[106],[[]],[[]],[[],108],[106,2],[[]],[[]],[106,108],[[]],[106,5],[[],107],[[[23,[13]]],107],[106,109],[107,15],[106,8],[106,110],[[]],[106,2],[[],17],[[],17],[[],17],[[],17],[106,2],[[],18],[[],18],[106,2],[60,8],[[4,4],84]],"p":[[8,"Iterator"],[3,"String"],[3,"Vec"],[15,"str"],[15,"bool"],[4,"BackupMode"],[4,"BackupError"],[15,"i32"],[3,"ArgMatches"],[6,"UResult"],[3,"Formatter"],[6,"Result"],[3,"Path"],[3,"PathBuf"],[4,"Option"],[3,"Demand"],[4,"Result"],[3,"TypeId"],[3,"Arg"],[3,"Quoted"],[3,"Error"],[3,"OsStr"],[8,"AsRef"],[6,"Result"],[4,"Format"],[6,"DecodeResult"],[8,"Read"],[3,"Data"],[4,"EncodeError"],[4,"DecodeError"],[3,"DecodeError"],[4,"DecodeError"],[3,"Error"],[15,"usize"],[8,"Error"],[8,"Write"],[3,"Passwd"],[6,"gid_t"],[3,"Group"],[15,"u32"],[6,"uid_t"],[3,"USimpleError"],[3,"UUsageError"],[3,"ExitCode"],[3,"ClapErrorWrapper"],[3,"UIoError"],[6,"Error"],[8,"FnOnce"],[8,"Into"],[8,"UError"],[3,"Box"],[4,"ErrorKind"],[4,"MissingHandling"],[4,"ResolveMode"],[3,"Metadata"],[6,"mode_t"],[3,"FileInformation"],[15,"u64"],[4,"Cow"],[15,"i8"],[3,"statfs_fn"],[15,"i64"],[3,"MountInfo"],[3,"FsUsage"],[15,"u8"],[3,"Lines"],[8,"BufRead"],[3,"Pattern"],[3,"PatternError"],[3,"Parser"],[4,"ParseSizeError"],[3,"Duration"],[3,"Command"],[8,"Args"],[4,"VerbosityLevel"],[3,"Verbosity"],[4,"TraverseSymlinks"],[3,"ChownExecutor"],[6,"Result"],[3,"ExitStatus"],[4,"Quotes"],[4,"QuotingStyle"],[3,"Range"],[4,"Ordering"],[3,"RingBuffer"],[4,"Errno"],[3,"DigestWriter"],[3,"Blake2b"],[3,"Blake3"],[3,"Sm3"],[3,"CRC"],[3,"BSD"],[3,"SYSV"],[3,"Md5"],[3,"Sha1"],[3,"Sha224"],[3,"Sha256"],[3,"Sha384"],[3,"Sha512"],[3,"Sha3_224"],[3,"Sha3_256"],[3,"Sha3_384"],[3,"Sha3_512"],[3,"Shake128"],[3,"Shake256"],[3,"Utmpx"],[3,"UtmpxIter"],[3,"utmpx"],[3,"OffsetDateTime"],[15,"i16"],[8,"Quotable"],[8,"Locate"],[8,"FromIo"],[8,"UClapError"],[8,"FsMeta"],[8,"BirthTime"],[4,"IfFrom"],[8,"ChildExt"],[13,"Shell"],[13,"C"],[13,"Literal"],[8,"Digest"]]},\
"uucore_procs":{"doc":"","t":[14,14,14,23],"n":["help_about","help_section","help_usage","main"],"q":["uucore_procs","","",""],"d":["Get the about text from the help file.","Reads a section from a file of the util as a str literal.","Get the usage from the help file.",""],"i":[0,0,0,0],"f":[0,0,0,0],"p":[]},\
"uudoc":{"doc":"","t":[3,6,11,11,11,11,12,11,11,11,11,11,11,5,11,11,5,11,12,11,12,11,11,12,11,11,11,11,5,12,11,11,12],"n":["MDWriter","UtilityMap","additional","after_help","borrow","borrow_mut","command","deref","deref_mut","description","drop","examples","from","get_zip_content","init","into","main","markdown","markdown","markdown_section","name","options","platforms","tldr_zip","try_from","try_into","type_id","usage","util_map","utils_per_platform","version","vzip","w"],"q":["uudoc","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","",""],"i":[0,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1],"f":[0,0,[1,2],[1,2],[[]],[[]],0,[3],[3],[1,2],[3],[1,2],[[]],[[4,5],[[7,[6]]]],[[],3],[[]],[[],2],[1,2],0,[[1,5],[[7,[6]]]],0,[1,2],[1,2],0,[[],8],[[],8],[[],9],[1,2],[[],[[10,[5]]]],0,[1,2],[[]],0],"p":[[3,"MDWriter"],[6,"Result"],[15,"usize"],[3,"ZipArchive"],[15,"str"],[3,"String"],[4,"Option"],[4,"Result"],[3,"TypeId"],[3,"Map"]]},\
"vdir":{"doc":"","t":[5],"n":["main"],"q":["vdir"],"d":[""],"i":[0],"f":[[[]]],"p":[]},\
diff --git a/dev/src/uu_du/du.rs.html b/dev/src/uu_du/du.rs.html
index 72f104c45..86a41ce11 100644
--- a/dev/src/uu_du/du.rs.html
+++ b/dev/src/uu_du/du.rs.html
@@ -963,6 +963,45 @@
963
964
965
+966
+967
+968
+969
+970
+971
+972
+973
+974
+975
+976
+977
+978
+979
+980
+981
+982
+983
+984
+985
+986
+987
+988
+989
+990
+991
+992
+993
+994
+995
+996
+997
+998
+999
+1000
+1001
+1002
+1003
+1004
// * This file is part of the uutils coreutils package.
// *
// * (c) Derek Chiang <derekchiang93@gmail.com>
@@ -998,7 +1037,7 @@
use std::{error::Error, fmt::Display};
use uucore::display::{print_verbatim, Quotable};
use uucore::error::FromIo;
-use uucore::error::{UError, UResult};
+use uucore::error::{set_exit_code, UError, UResult};
use uucore::parse_glob;
use uucore::parse_size::{parse_size, ParseSizeError};
use uucore::{
@@ -1033,6 +1072,7 @@
pub const TIME_STYLE: &str = "time-style";
pub const ONE_FILE_SYSTEM: &str = "one-file-system";
pub const DEREFERENCE: &str = "dereference";
+ pub const DEREFERENCE_ARGS: &str = "dereference-args";
pub const INODES: &str = "inodes";
pub const EXCLUDE: &str = "exclude";
pub const EXCLUDE_FROM: &str = "exclude-from";
@@ -1053,11 +1093,18 @@
total: bool,
separate_dirs: bool,
one_file_system: bool,
- dereference: bool,
+ dereference: Deref,
inodes: bool,
verbose: bool,
}
+#[derive(PartialEq)]
+enum Deref {
+ All,
+ Args(Vec<PathBuf>),
+ None,
+}
+
#[derive(PartialEq, Eq, Hash, Clone, Copy)]
struct FileInfo {
file_id: u128,
@@ -1077,12 +1124,21 @@
}
impl Stat {
- fn new(path: PathBuf, options: &Options) -> Result<Self> {
- let metadata = if options.dereference {
- fs::metadata(&path)?
- } else {
- fs::symlink_metadata(&path)?
- };
+ fn new(path: &Path, options: &Options) -> Result<Self> {
+ // Determine whether to dereference (follow) the symbolic link
+ let should_dereference = match &options.dereference {
+ Deref::All => true,
+ Deref::Args(paths) => paths.contains(&path.to_path_buf()),
+ Deref::None => false,
+ };
+
+ let metadata = if should_dereference {
+ // Get metadata, following symbolic links if necessary
+ fs::metadata(path)
+ } else {
+ // Get metadata without following symbolic links
+ fs::symlink_metadata(path)
+ }?;
#[cfg(not(windows))]
let file_info = FileInfo {
@@ -1091,7 +1147,7 @@
};
#[cfg(not(windows))]
return Ok(Self {
- path,
+ path: path.to_path_buf(),
is_dir: metadata.is_dir(),
size: metadata.len(),
blocks: metadata.blocks(),
@@ -1103,12 +1159,12 @@
});
#[cfg(windows)]
- let size_on_disk = get_size_on_disk(&path);
+ let size_on_disk = get_size_on_disk(path);
#[cfg(windows)]
- let file_info = get_file_info(&path);
+ let file_info = get_file_info(path);
#[cfg(windows)]
Ok(Self {
- path,
+ path: path.to_path_buf(),
is_dir: metadata.is_dir(),
size: metadata.len(),
blocks: size_on_disk / 1024 * 2,
@@ -1261,7 +1317,7 @@
'file_loop: for f in read {
match f {
Ok(entry) => {
- match Stat::new(entry.path(), options) {
+ match Stat::new(&entry.path(), options) {
Ok(this_stat) => {
// We have an exclude list
for pattern in exclude {
@@ -1362,6 +1418,20 @@
format!("{}", ((size as f64) / (block_size as f64)).ceil())
}
+fn get_convert_size_fn(matches: &ArgMatches) -> Box<dyn Fn(u64, u64, u64) -> String> {
+ if matches.get_flag(options::HUMAN_READABLE) || matches.get_flag(options::SI) {
+ Box::new(convert_size_human)
+ } else if matches.get_flag(options::BYTES) {
+ Box::new(convert_size_b)
+ } else if matches.get_flag(options::BLOCK_SIZE_1K) {
+ Box::new(convert_size_k)
+ } else if matches.get_flag(options::BLOCK_SIZE_1M) {
+ Box::new(convert_size_m)
+ } else {
+ Box::new(convert_size_other)
+ }
+}
+
#[derive(Debug)]
enum DuError {
InvalidMaxDepthArg(String),
@@ -1455,7 +1525,6 @@ Try '{} --help' for more information.",
}
#[uucore::main]
-#[allow(clippy::cognitive_complexity)]
pub fn uumain(args: impl uucore::Args) -> UResult<()> {
let args = args.collect_ignore();
@@ -1470,26 +1539,33 @@ Try '{} --help' for more information.",
summarize,
)?;
+ let files = match matches.get_one::<String>(options::FILE) {
+ Some(_) => matches
+ .get_many::<String>(options::FILE)
+ .unwrap()
+ .map(PathBuf::from)
+ .collect(),
+ None => vec![PathBuf::from(".")],
+ };
+
let options = Options {
all: matches.get_flag(options::ALL),
max_depth,
total: matches.get_flag(options::TOTAL),
separate_dirs: matches.get_flag(options::SEPARATE_DIRS),
one_file_system: matches.get_flag(options::ONE_FILE_SYSTEM),
- dereference: matches.get_flag(options::DEREFERENCE),
+ dereference: if matches.get_flag(options::DEREFERENCE) {
+ Deref::All
+ } else if matches.get_flag(options::DEREFERENCE_ARGS) {
+ // We don't care about the cost of cloning as it is rarely used
+ Deref::Args(files.clone())
+ } else {
+ Deref::None
+ },
inodes: matches.get_flag(options::INODES),
verbose: matches.get_flag(options::VERBOSE),
};
- let files = match matches.get_one::<String>(options::FILE) {
- Some(_) => matches
- .get_many::<String>(options::FILE)
- .unwrap()
- .map(|s| s.as_str())
- .collect(),
- None => vec!["."],
- };
-
if options.inodes
&& (matches.get_flag(options::APPARENT_SIZE) || matches.get_flag(options::BYTES))
{
@@ -1512,19 +1588,9 @@ Try '{} --help' for more information.",
} else {
1024
};
- let convert_size_fn = {
- if matches.get_flag(options::HUMAN_READABLE) || matches.get_flag(options::SI) {
- convert_size_human
- } else if matches.get_flag(options::BYTES) {
- convert_size_b
- } else if matches.get_flag(options::BLOCK_SIZE_1K) {
- convert_size_k
- } else if matches.get_flag(options::BLOCK_SIZE_1M) {
- convert_size_m
- } else {
- convert_size_other
- }
- };
+
+ let convert_size_fn = get_convert_size_fn(&matches);
+
let convert_size = |size: u64| {
if options.inodes {
size.to_string()
@@ -1545,11 +1611,12 @@ Try '{} --help' for more information.",
let excludes = build_exclude_patterns(&matches)?;
let mut grand_total = 0;
- 'loop_file: for path_string in files {
+ 'loop_file: for path in files {
// Skip if we don't want to ignore anything
if !&excludes.is_empty() {
+ let path_string = path.to_string_lossy();
for pattern in &excludes {
- if pattern.matches(path_string) {
+ if pattern.matches(&path_string) {
// if the directory is ignored, leave early
if options.verbose {
println!("{} ignored", path_string.quote());
@@ -1559,9 +1626,8 @@ Try '{} --help' for more information.",
}
}
- let path = PathBuf::from(&path_string);
// Check existence of path provided in argument
- if let Ok(stat) = Stat::new(path, &options) {
+ if let Ok(stat) = Stat::new(&path, &options) {
// Kick off the computation of disk usage from the initial path
let mut inodes: HashSet<FileInfo> = HashSet::new();
if let Some(inode) = stat.inode {
@@ -1581,20 +1647,11 @@ Try '{} --help' for more information.",
if matches.contains_id(options::TIME) {
let tm = {
- let secs = {
- match matches.get_one::<String>(options::TIME) {
- Some(s) => match s.as_str() {
- "ctime" | "status" => stat.modified,
- "access" | "atime" | "use" => stat.accessed,
- "birth" | "creation" => stat
- .created
- .ok_or_else(|| DuError::InvalidTimeArg(s.into()))?,
- // below should never happen as clap already restricts the values.
- _ => unreachable!("Invalid field for --time"),
- },
- None => stat.modified,
- }
- };
+ let secs = matches
+ .get_one::<String>(options::TIME)
+ .map(|s| get_time_secs(s, &stat))
+ .transpose()?
+ .unwrap_or(stat.modified);
DateTime::<Local>::from(UNIX_EPOCH + Duration::from_secs(secs))
};
if !summarize || index == len - 1 {
@@ -1617,9 +1674,10 @@ Try '{} --help' for more information.",
} else {
show_error!(
"{}: {}",
- path_string.maybe_quote(),
+ path.to_string_lossy().maybe_quote(),
"No such file or directory"
);
+ set_exit_code(1);
}
}
@@ -1631,6 +1689,19 @@ Try '{} --help' for more information.",
Ok(())
}
+fn get_time_secs(s: &str, stat: &Stat) -> std::result::Result<u64, DuError> {
+ let secs = match s {
+ "ctime" | "status" => stat.modified,
+ "access" | "atime" | "use" => stat.accessed,
+ "birth" | "creation" => stat
+ .created
+ .ok_or_else(|| DuError::InvalidTimeArg(s.into()))?,
+ // below should never happen as clap already restricts the values.
+ _ => unreachable!("Invalid field for --time"),
+ };
+ Ok(secs)
+}
+
fn parse_time_style(s: Option<&str>) -> UResult<&str> {
match s {
Some(s) => match s {
@@ -1753,6 +1824,13 @@ Try '{} --help' for more information.",
.help("dereference all symbolic links")
.action(ArgAction::SetTrue)
)
+ .arg(
+ Arg::new(options::DEREFERENCE_ARGS)
+ .short('D')
+ .long(options::DEREFERENCE_ARGS)
+ .help("dereference only symlinks that are listed on the command line")
+ .action(ArgAction::SetTrue)
+ )
// .arg(
// Arg::new("no-dereference")
// .short('P')
diff --git a/dev/src/uu_hashsum/hashsum.rs.html b/dev/src/uu_hashsum/hashsum.rs.html
index efbbbde0f..b8e7a5f0f 100644
--- a/dev/src/uu_hashsum/hashsum.rs.html
+++ b/dev/src/uu_hashsum/hashsum.rs.html
@@ -685,6 +685,42 @@
685
686
687
+688
+689
+690
+691
+692
+693
+694
+695
+696
+697
+698
+699
+700
+701
+702
+703
+704
+705
+706
+707
+708
+709
+710
+711
+712
+713
+714
+715
+716
+717
+718
+719
+720
+721
+722
+723
// * This file is part of the uutils coreutils package.
// *
// * (c) Alex Lyon <arcterus@mail.com>
@@ -752,7 +788,28 @@
"sha256sum" => ("SHA256", Box::new(Sha256::new()) as Box<dyn Digest>, 256),
"sha384sum" => ("SHA384", Box::new(Sha384::new()) as Box<dyn Digest>, 384),
"sha512sum" => ("SHA512", Box::new(Sha512::new()) as Box<dyn Digest>, 512),
- "b2sum" => ("BLAKE2", Box::new(Blake2b::new()) as Box<dyn Digest>, 512),
+ "b2sum" => match matches.get_one::<usize>("length") {
+ // by default, blake2 uses 64 bytes (512 bits)
+ // --length=0 falls back to default behavior
+ Some(0) | None => ("BLAKE2", Box::new(Blake2b::new()) as Box<dyn Digest>, 512),
+ Some(length_in_bits) => {
+ if *length_in_bits > 512 {
+ crash!(1, "Invalid length (maximum digest length is 512 bits)")
+ }
+
+ // blake2 output size must be a multiple of 8 bits
+ if length_in_bits % 8 == 0 {
+ let length_in_bytes = length_in_bits / 8;
+ (
+ "BLAKE2",
+ Box::new(Blake2b::with_output_bytes(length_in_bytes)),
+ *length_in_bits,
+ )
+ } else {
+ crash!(1, "Invalid length (expected a multiple of 8)")
+ }
+ }
+ },
"b3sum" => ("BLAKE3", Box::new(Blake3::new()) as Box<dyn Digest>, 256),
"sha3sum" => match matches.get_one::<usize>("bits") {
Some(224) => (
@@ -1066,6 +1123,21 @@
)
}
+pub fn uu_app_length() -> Command {
+ uu_app_opt_length(uu_app_common())
+}
+
+fn uu_app_opt_length(command: Command) -> Command {
+ command.arg(
+ Arg::new("length")
+ .short('l')
+ .long("length")
+ .help("digest length in bits; must not exceed the max for the blake2 algorithm (512) and must be a multiple of 8")
+ .value_name("BITS")
+ .value_parser(parse_bit_num),
+ )
+}
+
pub fn uu_app_b3sum() -> Command {
uu_app_b3sum_opts(uu_app_common())
}
@@ -1141,8 +1213,8 @@
uu_app_common()
}
// b2sum supports the md5sum options plus -l/--length.
- "b2sum" => uu_app_common(), // TODO: Implement -l/--length
- // These have never been part of GNU Coreutils, but can function with the same
+ "b2sum" => uu_app_length(),
+ // These have never been part of GNU Coreutils, but can function with the same
// options as md5sum.
"sha3-224sum" | "sha3-256sum" | "sha3-384sum" | "sha3-512sum" => uu_app_common(),
// These have never been part of GNU Coreutils, and require an additional --bits
diff --git a/dev/src/uucore/features/sum.rs.html b/dev/src/uucore/features/sum.rs.html
index 40ea4a295..54acb168f 100644
--- a/dev/src/uucore/features/sum.rs.html
+++ b/dev/src/uucore/features/sum.rs.html
@@ -492,6 +492,21 @@
492
493
494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
// This file is part of the uutils coreutils package.
//
// (c) Yuan YangHao <yuanyanghau@gmail.com>
@@ -532,10 +547,25 @@
}
}
-pub struct Blake2b(blake2b_simd::State);
+/// first element of the tuple is the blake2b state
+/// second is the number of output bits
+pub struct Blake2b(blake2b_simd::State, usize);
+
+impl Blake2b {
+ /// Return a new Blake2b instance with a custom output bytes length
+ pub fn with_output_bytes(output_bytes: usize) -> Self {
+ let mut params = blake2b_simd::Params::new();
+ params.hash_length(output_bytes);
+
+ let state = params.to_state();
+ Self(state, output_bytes * 8)
+ }
+}
+
impl Digest for Blake2b {
fn new() -> Self {
- Self(blake2b_simd::State::new())
+ // by default, Blake2b output is 512 bits long (= 64B)
+ Self::with_output_bytes(64)
}
fn hash_update(&mut self, input: &[u8]) {
@@ -548,11 +578,11 @@
}
fn reset(&mut self) {
- *self = Self::new();
+ *self = Self::with_output_bytes(self.output_bytes());
}
fn output_bits(&self) -> usize {
- 512
+ self.1
}
}
diff --git a/dev/uu_du/fn.uu_app.html b/dev/uu_du/fn.uu_app.html
index 74bfa35f8..d91618b1d 100644
--- a/dev/uu_du/fn.uu_app.html
+++ b/dev/uu_du/fn.uu_app.html
@@ -1 +1 @@
-uu_app in uu_du - Rust
\ No newline at end of file
+uu_app in uu_du - Rust
\ No newline at end of file
diff --git a/dev/uu_du/fn.uumain.html b/dev/uu_du/fn.uumain.html
index 02fec85c4..0a11f446c 100644
--- a/dev/uu_du/fn.uumain.html
+++ b/dev/uu_du/fn.uumain.html
@@ -1 +1 @@
-uumain in uu_du - Rust
\ No newline at end of file
+uumain in uu_du - Rust
\ No newline at end of file
diff --git a/dev/uu_du/index.html b/dev/uu_du/index.html
index 6bac49784..6949a8123 100644
--- a/dev/uu_du/index.html
+++ b/dev/uu_du/index.html
@@ -1 +1 @@
-uu_du - Rust
\ No newline at end of file
+uu_du - Rust
\ No newline at end of file
diff --git a/dev/uu_hashsum/all.html b/dev/uu_hashsum/all.html
index b15395e7b..dba2fe867 100644
--- a/dev/uu_hashsum/all.html
+++ b/dev/uu_hashsum/all.html
@@ -1 +1 @@
-List of all items in this crate List of all items
Functions
\ No newline at end of file
+List of all items in this crate List of all items
Functions
\ No newline at end of file
diff --git a/dev/uu_hashsum/fn.uu_app_b3sum.html b/dev/uu_hashsum/fn.uu_app_b3sum.html
index 28cf426dc..aa883ff80 100644
--- a/dev/uu_hashsum/fn.uu_app_b3sum.html
+++ b/dev/uu_hashsum/fn.uu_app_b3sum.html
@@ -1 +1 @@
-uu_app_b3sum in uu_hashsum - Rust Function uu_hashsum::uu_app_b3sum
source · pub fn uu_app_b3sum() -> Command
\ No newline at end of file
+uu_app_b3sum in uu_hashsum - Rust Function uu_hashsum::uu_app_b3sum
source · pub fn uu_app_b3sum() -> Command
\ No newline at end of file
diff --git a/dev/uu_hashsum/fn.uu_app_bits.html b/dev/uu_hashsum/fn.uu_app_bits.html
index cd4109bb7..191cd9dc9 100644
--- a/dev/uu_hashsum/fn.uu_app_bits.html
+++ b/dev/uu_hashsum/fn.uu_app_bits.html
@@ -1 +1 @@
-uu_app_bits in uu_hashsum - Rust Function uu_hashsum::uu_app_bits
source · pub fn uu_app_bits() -> Command
\ No newline at end of file
+uu_app_bits in uu_hashsum - Rust Function uu_hashsum::uu_app_bits
source · pub fn uu_app_bits() -> Command
\ No newline at end of file
diff --git a/dev/uu_hashsum/fn.uu_app_common.html b/dev/uu_hashsum/fn.uu_app_common.html
index 9ba7f3f77..f3b59412e 100644
--- a/dev/uu_hashsum/fn.uu_app_common.html
+++ b/dev/uu_hashsum/fn.uu_app_common.html
@@ -1 +1 @@
-uu_app_common in uu_hashsum - Rust Function uu_hashsum::uu_app_common
source · pub fn uu_app_common() -> Command
\ No newline at end of file
+uu_app_common in uu_hashsum - Rust Function uu_hashsum::uu_app_common
source · pub fn uu_app_common() -> Command
\ No newline at end of file
diff --git a/dev/uu_hashsum/fn.uu_app_custom.html b/dev/uu_hashsum/fn.uu_app_custom.html
index 257ab698e..3fdc5179a 100644
--- a/dev/uu_hashsum/fn.uu_app_custom.html
+++ b/dev/uu_hashsum/fn.uu_app_custom.html
@@ -1 +1 @@
-uu_app_custom in uu_hashsum - Rust Function uu_hashsum::uu_app_custom
source · pub fn uu_app_custom() -> Command
\ No newline at end of file
+uu_app_custom in uu_hashsum - Rust Function uu_hashsum::uu_app_custom
source · pub fn uu_app_custom() -> Command
\ No newline at end of file
diff --git a/dev/uu_hashsum/fn.uu_app_length.html b/dev/uu_hashsum/fn.uu_app_length.html
new file mode 100644
index 000000000..71034ed05
--- /dev/null
+++ b/dev/uu_hashsum/fn.uu_app_length.html
@@ -0,0 +1 @@
+uu_app_length in uu_hashsum - Rust Function uu_hashsum::uu_app_length
source · pub fn uu_app_length() -> Command
\ No newline at end of file
diff --git a/dev/uu_hashsum/fn.uumain.html b/dev/uu_hashsum/fn.uumain.html
index 0497da644..9f9a226bd 100644
--- a/dev/uu_hashsum/fn.uumain.html
+++ b/dev/uu_hashsum/fn.uumain.html
@@ -1 +1 @@
-uumain in uu_hashsum - Rust Function uu_hashsum::uumain
source · pub fn uumain(args: impl Args) -> i32
\ No newline at end of file
+uumain in uu_hashsum - Rust Function uu_hashsum::uumain
source · pub fn uumain(args: impl Args) -> i32
\ No newline at end of file
diff --git a/dev/uu_hashsum/index.html b/dev/uu_hashsum/index.html
index 056ef3b17..5f46be8a2 100644
--- a/dev/uu_hashsum/index.html
+++ b/dev/uu_hashsum/index.html
@@ -1 +1 @@
-uu_hashsum - Rust
\ No newline at end of file
+uu_hashsum - Rust
\ No newline at end of file
diff --git a/dev/uu_hashsum/sidebar-items.js b/dev/uu_hashsum/sidebar-items.js
index 2c63c9c51..85a81b44f 100644
--- a/dev/uu_hashsum/sidebar-items.js
+++ b/dev/uu_hashsum/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"fn":[["uu_app_b3sum",""],["uu_app_bits",""],["uu_app_common",""],["uu_app_custom",""],["uumain",""]]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"fn":[["uu_app_b3sum",""],["uu_app_bits",""],["uu_app_common",""],["uu_app_custom",""],["uu_app_length",""],["uumain",""]]};
\ No newline at end of file
diff --git a/dev/uucore/sum/fn.div_ceil.html b/dev/uucore/sum/fn.div_ceil.html
index e366f6ff2..9413d32dd 100644
--- a/dev/uucore/sum/fn.div_ceil.html
+++ b/dev/uucore/sum/fn.div_ceil.html
@@ -1 +1 @@
-div_ceil in uucore::sum - Rust
\ No newline at end of file
+div_ceil in uucore::sum - Rust
\ No newline at end of file
diff --git a/dev/uucore/sum/index.html b/dev/uucore/sum/index.html
index 95ab1abef..b5f129272 100644
--- a/dev/uucore/sum/index.html
+++ b/dev/uucore/sum/index.html
@@ -1,7 +1,8 @@
-uucore::sum - Rust Expand description
Implementations of digest functions, like md5 and sha1.
+uucore::sum - Rust Expand description
Implementations of digest functions, like md5 and sha1.
The Digest trait represents the interface for providing inputs
to these digest functions and accessing the resulting hash. The
DigestWriter struct provides a wrapper around Digest that
implements the Write trait, for use in situations where calling
write would be useful.
-Structs
A struct that writes to a digest.Traits
Functions
\ No newline at end of file
+Structs
first element of the tuple is the blake2b state
+second is the number of output bitsA struct that writes to a digest.Traits
Functions
\ No newline at end of file
diff --git a/dev/uucore/sum/sidebar-items.js b/dev/uucore/sum/sidebar-items.js
index 9cbbd6f95..d98ddc927 100644
--- a/dev/uucore/sum/sidebar-items.js
+++ b/dev/uucore/sum/sidebar-items.js
@@ -1 +1 @@
-window.SIDEBAR_ITEMS = {"fn":[["div_ceil",""]],"struct":[["BSD",""],["Blake2b",""],["Blake3",""],["CRC",""],["DigestWriter","A struct that writes to a digest."],["Md5",""],["SYSV",""],["Sha1",""],["Sha224",""],["Sha256",""],["Sha384",""],["Sha3_224",""],["Sha3_256",""],["Sha3_384",""],["Sha3_512",""],["Sha512",""],["Shake128",""],["Shake256",""],["Sm3",""]],"trait":[["Digest",""]]};
\ No newline at end of file
+window.SIDEBAR_ITEMS = {"fn":[["div_ceil",""]],"struct":[["BSD",""],["Blake2b","first element of the tuple is the blake2b state second is the number of output bits"],["Blake3",""],["CRC",""],["DigestWriter","A struct that writes to a digest."],["Md5",""],["SYSV",""],["Sha1",""],["Sha224",""],["Sha256",""],["Sha384",""],["Sha3_224",""],["Sha3_256",""],["Sha3_384",""],["Sha3_512",""],["Sha512",""],["Shake128",""],["Shake256",""],["Sm3",""]],"trait":[["Digest",""]]};
\ No newline at end of file
diff --git a/dev/uucore/sum/struct.BSD.html b/dev/uucore/sum/struct.BSD.html
index c3459a9c0..b3d635ac7 100644
--- a/dev/uucore/sum/struct.BSD.html
+++ b/dev/uucore/sum/struct.BSD.html
@@ -1,4 +1,4 @@
-BSD in uucore::sum - Rust pub struct BSD { /* private fields */ }
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for BSD
§impl Send for BSD
§impl Sync for BSD
§impl Unpin for BSD
§impl UnwindSafe for BSD
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+BSD in uucore::sum - Rust pub struct BSD { /* private fields */ }
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for BSD
§impl Send for BSD
§impl Sync for BSD
§impl Unpin for BSD
§impl UnwindSafe for BSD
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Blake2b.html b/dev/uucore/sum/struct.Blake2b.html
index 79f9a8d92..295463a7f 100644
--- a/dev/uucore/sum/struct.Blake2b.html
+++ b/dev/uucore/sum/struct.Blake2b.html
@@ -1,4 +1,7 @@
-Blake2b in uucore::sum - Rust pub struct Blake2b(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Blake2b
§impl Send for Blake2b
§impl Sync for Blake2b
§impl Unpin for Blake2b
§impl UnwindSafe for Blake2b
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Blake2b in uucore::sum - Rust pub struct Blake2b(_, _);
Expand description
first element of the tuple is the blake2b state
+second is the number of output bits
+Implementations§
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Blake2b
§impl Send for Blake2b
§impl Sync for Blake2b
§impl Unpin for Blake2b
§impl UnwindSafe for Blake2b
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Blake3.html b/dev/uucore/sum/struct.Blake3.html
index a5388c6a2..df6dbaa2a 100644
--- a/dev/uucore/sum/struct.Blake3.html
+++ b/dev/uucore/sum/struct.Blake3.html
@@ -1,4 +1,4 @@
-Blake3 in uucore::sum - Rust pub struct Blake3(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Blake3
§impl Send for Blake3
§impl Sync for Blake3
§impl Unpin for Blake3
§impl UnwindSafe for Blake3
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Blake3 in uucore::sum - Rust pub struct Blake3(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Blake3
§impl Send for Blake3
§impl Sync for Blake3
§impl Unpin for Blake3
§impl UnwindSafe for Blake3
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.CRC.html b/dev/uucore/sum/struct.CRC.html
index 07c1b3c7a..ac2472fdb 100644
--- a/dev/uucore/sum/struct.CRC.html
+++ b/dev/uucore/sum/struct.CRC.html
@@ -1,4 +1,4 @@
-CRC in uucore::sum - Rust pub struct CRC { /* private fields */ }
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for CRC
§impl Send for CRC
§impl Sync for CRC
§impl Unpin for CRC
§impl UnwindSafe for CRC
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+CRC in uucore::sum - Rust pub struct CRC { /* private fields */ }
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for CRC
§impl Send for CRC
§impl Sync for CRC
§impl Unpin for CRC
§impl UnwindSafe for CRC
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.DigestWriter.html b/dev/uucore/sum/struct.DigestWriter.html
index 1e1a90b96..252c5583c 100644
--- a/dev/uucore/sum/struct.DigestWriter.html
+++ b/dev/uucore/sum/struct.DigestWriter.html
@@ -1,11 +1,11 @@
-DigestWriter in uucore::sum - Rust Struct uucore::sum::DigestWriter
source · pub struct DigestWriter<'a> { /* private fields */ }
Expand description
A struct that writes to a digest.
+DigestWriter in uucore::sum - Rust Struct uucore::sum::DigestWriter
source · pub struct DigestWriter<'a> { /* private fields */ }
Expand description
A struct that writes to a digest.
This struct wraps a Digest and provides a Write
implementation that passes input bytes directly to the
Digest::hash_update.
On Windows, if binary is false, then the write
implementation replaces instances of “\r\n” with “\n” before passing
the input bytes to the [digest].
-Implementations§
Trait Implementations§
source§impl<'a> Write for DigestWriter<'a>
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this writer, returning how many bytes were written. Read moresource§fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered
+Implementations§
Trait Implementations§
source§impl<'a> Write for DigestWriter<'a>
source§fn write(&mut self, buf: &[u8]) -> Result<usize>
Write a buffer into this writer, returning how many bytes were written. Read moresource§fn flush(&mut self) -> Result<()>
Flush this output stream, ensuring that all intermediately buffered
contents reach their destination. Read moresource§fn is_write_vectored(&self) -> bool
🔬This is a nightly-only experimental API. (can_vector)1.0.0 · source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Attempts to write an entire buffer into this writer. Read moresource§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
🔬This is a nightly-only experimental API. (write_all_vectored)Attempts to write multiple buffers into this writer. Read moreAuto Trait Implementations§
§impl<'a> !RefUnwindSafe for DigestWriter<'a>
§impl<'a> !Send for DigestWriter<'a>
§impl<'a> !Sync for DigestWriter<'a>
§impl<'a> Unpin for DigestWriter<'a>
§impl<'a> !UnwindSafe for DigestWriter<'a>
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
diff --git a/dev/uucore/sum/struct.Md5.html b/dev/uucore/sum/struct.Md5.html
index 472df7c9a..39734142d 100644
--- a/dev/uucore/sum/struct.Md5.html
+++ b/dev/uucore/sum/struct.Md5.html
@@ -1,4 +1,4 @@
-Md5 in uucore::sum - Rust pub struct Md5(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Md5
§impl Send for Md5
§impl Sync for Md5
§impl Unpin for Md5
§impl UnwindSafe for Md5
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Md5 in uucore::sum - Rust pub struct Md5(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Md5
§impl Send for Md5
§impl Sync for Md5
§impl Unpin for Md5
§impl UnwindSafe for Md5
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.SYSV.html b/dev/uucore/sum/struct.SYSV.html
index b8a5fc34a..2be7a303d 100644
--- a/dev/uucore/sum/struct.SYSV.html
+++ b/dev/uucore/sum/struct.SYSV.html
@@ -1,4 +1,4 @@
-SYSV in uucore::sum - Rust pub struct SYSV { /* private fields */ }
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for SYSV
§impl Send for SYSV
§impl Sync for SYSV
§impl Unpin for SYSV
§impl UnwindSafe for SYSV
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+SYSV in uucore::sum - Rust pub struct SYSV { /* private fields */ }
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for SYSV
§impl Send for SYSV
§impl Sync for SYSV
§impl Unpin for SYSV
§impl UnwindSafe for SYSV
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Sha1.html b/dev/uucore/sum/struct.Sha1.html
index f14a9d2be..e59531216 100644
--- a/dev/uucore/sum/struct.Sha1.html
+++ b/dev/uucore/sum/struct.Sha1.html
@@ -1,4 +1,4 @@
-Sha1 in uucore::sum - Rust pub struct Sha1(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha1
§impl Send for Sha1
§impl Sync for Sha1
§impl Unpin for Sha1
§impl UnwindSafe for Sha1
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Sha1 in uucore::sum - Rust pub struct Sha1(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha1
§impl Send for Sha1
§impl Sync for Sha1
§impl Unpin for Sha1
§impl UnwindSafe for Sha1
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Sha224.html b/dev/uucore/sum/struct.Sha224.html
index 2e271684f..e9b4d6d85 100644
--- a/dev/uucore/sum/struct.Sha224.html
+++ b/dev/uucore/sum/struct.Sha224.html
@@ -1,4 +1,4 @@
-Sha224 in uucore::sum - Rust pub struct Sha224(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha224
§impl Send for Sha224
§impl Sync for Sha224
§impl Unpin for Sha224
§impl UnwindSafe for Sha224
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Sha224 in uucore::sum - Rust pub struct Sha224(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha224
§impl Send for Sha224
§impl Sync for Sha224
§impl Unpin for Sha224
§impl UnwindSafe for Sha224
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Sha256.html b/dev/uucore/sum/struct.Sha256.html
index b79c486c6..085020c5b 100644
--- a/dev/uucore/sum/struct.Sha256.html
+++ b/dev/uucore/sum/struct.Sha256.html
@@ -1,4 +1,4 @@
-Sha256 in uucore::sum - Rust pub struct Sha256(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha256
§impl Send for Sha256
§impl Sync for Sha256
§impl Unpin for Sha256
§impl UnwindSafe for Sha256
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Sha256 in uucore::sum - Rust pub struct Sha256(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha256
§impl Send for Sha256
§impl Sync for Sha256
§impl Unpin for Sha256
§impl UnwindSafe for Sha256
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Sha384.html b/dev/uucore/sum/struct.Sha384.html
index e7d026c7d..cc112924e 100644
--- a/dev/uucore/sum/struct.Sha384.html
+++ b/dev/uucore/sum/struct.Sha384.html
@@ -1,4 +1,4 @@
-Sha384 in uucore::sum - Rust pub struct Sha384(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha384
§impl Send for Sha384
§impl Sync for Sha384
§impl Unpin for Sha384
§impl UnwindSafe for Sha384
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Sha384 in uucore::sum - Rust pub struct Sha384(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha384
§impl Send for Sha384
§impl Sync for Sha384
§impl Unpin for Sha384
§impl UnwindSafe for Sha384
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Sha3_224.html b/dev/uucore/sum/struct.Sha3_224.html
index 882fb15f8..b9e4538db 100644
--- a/dev/uucore/sum/struct.Sha3_224.html
+++ b/dev/uucore/sum/struct.Sha3_224.html
@@ -1,4 +1,4 @@
-Sha3_224 in uucore::sum - Rust pub struct Sha3_224(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha3_224
§impl Send for Sha3_224
§impl Sync for Sha3_224
§impl Unpin for Sha3_224
§impl UnwindSafe for Sha3_224
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Sha3_224 in uucore::sum - Rust pub struct Sha3_224(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha3_224
§impl Send for Sha3_224
§impl Sync for Sha3_224
§impl Unpin for Sha3_224
§impl UnwindSafe for Sha3_224
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Sha3_256.html b/dev/uucore/sum/struct.Sha3_256.html
index 657aa407e..7fe834aac 100644
--- a/dev/uucore/sum/struct.Sha3_256.html
+++ b/dev/uucore/sum/struct.Sha3_256.html
@@ -1,4 +1,4 @@
-Sha3_256 in uucore::sum - Rust pub struct Sha3_256(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha3_256
§impl Send for Sha3_256
§impl Sync for Sha3_256
§impl Unpin for Sha3_256
§impl UnwindSafe for Sha3_256
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Sha3_256 in uucore::sum - Rust pub struct Sha3_256(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha3_256
§impl Send for Sha3_256
§impl Sync for Sha3_256
§impl Unpin for Sha3_256
§impl UnwindSafe for Sha3_256
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Sha3_384.html b/dev/uucore/sum/struct.Sha3_384.html
index f7ad59edd..29a836ca8 100644
--- a/dev/uucore/sum/struct.Sha3_384.html
+++ b/dev/uucore/sum/struct.Sha3_384.html
@@ -1,4 +1,4 @@
-Sha3_384 in uucore::sum - Rust pub struct Sha3_384(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha3_384
§impl Send for Sha3_384
§impl Sync for Sha3_384
§impl Unpin for Sha3_384
§impl UnwindSafe for Sha3_384
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Sha3_384 in uucore::sum - Rust pub struct Sha3_384(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha3_384
§impl Send for Sha3_384
§impl Sync for Sha3_384
§impl Unpin for Sha3_384
§impl UnwindSafe for Sha3_384
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Sha3_512.html b/dev/uucore/sum/struct.Sha3_512.html
index 57cbbafd2..314b7e323 100644
--- a/dev/uucore/sum/struct.Sha3_512.html
+++ b/dev/uucore/sum/struct.Sha3_512.html
@@ -1,4 +1,4 @@
-Sha3_512 in uucore::sum - Rust pub struct Sha3_512(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha3_512
§impl Send for Sha3_512
§impl Sync for Sha3_512
§impl Unpin for Sha3_512
§impl UnwindSafe for Sha3_512
Blanket Implementations§
source§impl<T> From<T> for T
const: unstable · source§fn from(t: T) -> T
Returns the argument unchanged.
+Sha3_512 in uucore::sum - Rust pub struct Sha3_512(_);
Trait Implementations§
Auto Trait Implementations§
§impl RefUnwindSafe for Sha3_512
§impl Send for Sha3_512
§impl Sync for Sha3_512
§impl Unpin for Sha3_512
§impl UnwindSafe for Sha3_512
Blanket Implementations§
source§impl<T, U> Into<U> for Twhere
U: From<T>,
const: unstable · source§fn into(self) -> U
Calls U::from(self).
That is, this conversion is whatever the implementation of
From<T> for U chooses to do.
diff --git a/dev/uucore/sum/struct.Sha512.html b/dev/uucore/sum/struct.Sha512.html
index 2b2d1a940..86f272984 100644
--- a/dev/uucore/sum/struct.Sha512.html
+++ b/dev/uucore/sum/struct.Sha512.html
@@ -1,4 +1,4 @@
-Sha512 in uucore::sum - Rust