mirror of https://github.com/perkeep/perkeep.git
index: add doc, notes, reverse time, start of tests.
Change-Id: I13bae252be9616f39decbfb4cc60eaa92c0f3db9
This commit is contained in:
parent
3dd1dcbb70
commit
5ea8cf8d26
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
Copyright 2011 Google Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
/*
|
||||
Package index provides a generic indexing system on top of an abstract
|
||||
index storage system (IndexStorage).
|
||||
|
||||
The following keys & values are populated by receiving blobs and queried
|
||||
for search operations:
|
||||
|
||||
* Recent Permanodes
|
||||
"recpn:<signer-blobref>:<reverse-modtime>:<claim-blobref>" == "<permanode-blobref>"
|
||||
where reverse-modtime flips each digit to '9'-<digit> and prepends "rt" (for reverse time)
|
||||
"2011-11-27T01:23:45Z"
|
||||
==> "rt7988-88-72T98:76:54Z"
|
||||
|
||||
|
||||
*/
|
||||
package index
|
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
Copyright 2011 Google Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package index
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestReverseTimeString(t *testing.T) {
|
||||
got := reverseTimeString("2011-11-27T01:23:45Z")
|
||||
want := "rt7988-88-72T98:76:54Z"
|
||||
if got != want {
|
||||
t.Errorf("reverseTimeString = %q, want %q", got, want)
|
||||
}
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
/*
|
||||
Copyright 2011 Google Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package index
|
||||
|
||||
import ()
|
||||
|
||||
func reverseTimeString(s string) string {
|
||||
b := make([]byte, 0, len(s)+2)
|
||||
b = append(b, 'r')
|
||||
b = append(b, 't')
|
||||
for i := 0; i < len(s); i++ {
|
||||
c := s[i]
|
||||
if c >= '0' && c <= '9' {
|
||||
b = append(b, '0'+('9'-c))
|
||||
} else {
|
||||
b = append(b, c)
|
||||
}
|
||||
}
|
||||
return string(b)
|
||||
}
|
Loading…
Reference in New Issue