def parse_singleline_row(line, columns):
    """
    Parses a single-line row from a "net use" table and returns a dictionary mapping from
    standardized column names to column values.
    `line` must be a single-line row from the output of `NET USE`. While `NET USE` may represent
           a single row on multiple lines, `line` must be a whole row on a single line.
    `columns` must be a list of `NetUseColumn` objects that correctly parses `string`.
    """
    return {column.name: column.extract(line) for column in columns}