| 202 | } |
| 203 | |
| 204 | func (t *Tree) entry(baseName string) (*TreeEntry, error) { |
| 205 | if t.entriesSorted { |
| 206 | if entry := t.searchEntry(baseName); entry != nil { |
| 207 | return entry, nil |
| 208 | } |
| 209 | return nil, ErrEntryNotFound |
| 210 | } |
| 211 | |
| 212 | pastName := baseName + "/" |
| 213 | for i := range t.Entries { |
| 214 | entry := &t.Entries[i] |
| 215 | if entry.Name == baseName { |
| 216 | return entry, nil |
| 217 | } |
| 218 | if treeEntrySortName(entry) > pastName { |
| 219 | break |
| 220 | } |
| 221 | } |
| 222 | |
| 223 | return nil, ErrEntryNotFound |
| 224 | } |
| 225 | |
| 226 | func (t *Tree) searchEntry(baseName string) *TreeEntry { |
| 227 | if i := t.searchEntryIndex(baseName); i < len(t.Entries) && t.Entries[i].Name == baseName { |