function ui::activity::peer_row() { local name_pad="${1:-}" rx_pad="${2:-}" tx_pad="${3:-}" \ drops="${4:-0}" drop_word="${5:-drops}" w_drops="${6:-1}" printf " \033[1m%s\033[0m \033[2m↓\033[0m%s \033[2m↑\033[0m%s %${w_drops}s %s\n" \ "$name_pad" "$rx_pad" "$tx_pad" "$drops" "$drop_word" } function ui::activity::peer_row_table() { local name="${1:-}" rx_fmt="${2:-}" tx_fmt="${3:-}" \ drops="${4:-0}" drop_word="${5:-drops}" printf " %-24s %-14s %-14s %s %s\n" \ "$name" "↓$rx_fmt" "↑$tx_fmt" "$drops" "$drop_word" } function ui::activity::accept_row() { local name_pad="${1:-}" bytes_in="${2:-}" bytes_out="${3:-}" \ conns="${4:-0}" w_drops="${5:-4}" local conn_word="conns" [[ "$conns" -eq 1 ]] && conn_word="conn" local w=${#name_pad} printf " \033[0;32m%-${w}s\033[0m \033[0;32m↓\033[0m%-10s \033[0;32m↑\033[0m%-10s \033[0;32m%${w_drops}s %s\033[0m\n" \ "ACCEPT" "$bytes_in" "$bytes_out" "$conns" "$conn_word" } function ui::activity::accept_dest_row() { local dest="${1:-}" bytes_raw="${2:-0}" bytes_fmt="${3:-}" \ count="${4:-0}" drops_col="${5:-40}" w_drops="${6:-4}" local conn_word="conns" [[ "$count" -eq 1 ]] && conn_word="conn" local arrow_prefix=" → " printf "%b\033[0;32m%-28s %${w_drops}s %s %s\033[0m\n" \ "$arrow_prefix" "$dest" "$count" "$conn_word" "$bytes_fmt" }