let s:mail_box = {}
function! mail#client#mailbox#get(dir)
    return get(s:mail_box, a:dir, {})
endfunction

function! mail#client#mailbox#updatedir(id, from, data, subject, dir)
    if !has_key(s:mail_box, a:dir)
        call extend(s:mail_box, {a:dir :
                        \ { a:id :
                            \ {
                            \ 'from' : a:from,
                            \ 'subject' : a:subject,
                            \ 'data' : a:data,
                            \ },
                        \ },
                    \ }
                    \ )
    else
        if !has_key(s:mail_box[a:dir], a:id)
            call extend(s:mail_box[a:dir],
                            \ { a:id :
                                \ {
                                \ 'from' : a:from,
                                \ 'subject' : a:subject,
                                \ 'data' : a:data,
                                \ },
                            \ },
                        \ )
        else
            call extend(s:mail_box[a:dir][a:id],
                                \ {
                                \ 'from' : a:from,
                                \ 'subject' : a:subject,
                                \ 'data' : a:data,
                                \ },
                        \ )
        endif
    endif


endfunction