forked from Silverfish/proton-bridge
feat: attach public key
This commit is contained in:
@ -1,7 +1,6 @@
|
||||
package parser
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
|
||||
@ -31,20 +30,17 @@ func (p *Parser) NewWriter() *Writer {
|
||||
return newWriter(p.root)
|
||||
}
|
||||
|
||||
func (p *Parser) Header() message.Header {
|
||||
return p.root.Header
|
||||
func (p *Parser) Root() *Part {
|
||||
return p.root
|
||||
}
|
||||
|
||||
func (p *Parser) Part(number []int) (part *Part, err error) {
|
||||
part = p.root
|
||||
|
||||
for _, n := range number {
|
||||
if len(part.children) < n {
|
||||
err = errors.New("no such part")
|
||||
if part, err = part.Part(n); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
part = part.children[n-1]
|
||||
}
|
||||
|
||||
return
|
||||
|
||||
@ -1,6 +1,8 @@
|
||||
package parser
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/emersion/go-message"
|
||||
)
|
||||
|
||||
@ -10,6 +12,22 @@ type Part struct {
|
||||
children []*Part
|
||||
}
|
||||
|
||||
func (p *Part) Part(n int) (part *Part, err error) {
|
||||
if len(p.children) < n {
|
||||
return nil, errors.New("no such part")
|
||||
}
|
||||
|
||||
return p.children[n-1], nil
|
||||
}
|
||||
|
||||
func (p *Part) Parts() (n int) {
|
||||
return len(p.children)
|
||||
}
|
||||
|
||||
func (p *Part) AddChild(child *Part) {
|
||||
p.children = append(p.children, child)
|
||||
}
|
||||
|
||||
func (p *Part) visit(w *Walker) (err error) {
|
||||
if err = p.handle(w); err != nil {
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user