Added Delete methods for slice elements to common attributes, entry, feed, person and source

This commit is contained in:
2024-10-20 10:49:29 +02:00
parent e2986e70b1
commit e0384904b4
5 changed files with 292 additions and 62 deletions

View File

@@ -31,6 +31,17 @@ func (p *Person) AddExtension(e *ExtensionElement) {
}
}
// DeleteExtension deletes the Extension from the Person. It return an error.
func (p *Person) DeleteExtension(id int) error {
length := len(p.Extensions)
if id > length {
return fmt.Errorf("error deleting extension from person %v: id %v out of range %v", p, id, length)
}
p.Extensions = append(p.Extensions[:id], p.Extensions[id+1:]...)
return nil
}
// Check checks the Person for incompatibilities with RFC4287. It returns an
// error.
func (p *Person) Check() error {
@@ -50,11 +61,9 @@ func (p *Person) Check() error {
}
}
if p.Extensions != nil {
for i, e := range p.Extensions {
if err := e.Check(); err != nil {
return fmt.Errorf("extension element %v of person %v: %v", i, p, err)
}
for i, e := range p.Extensions {
if err := e.Check(); err != nil {
return fmt.Errorf("extension element %v of person %v: %v", i, p, err)
}
}