當前位置: 首頁>>代碼示例>>Golang>>正文


Golang Bucket.Put方法代碼示例

本文整理匯總了Golang中github.com/roasbeef/btcwallet/walletdb.Bucket.Put方法的典型用法代碼示例。如果您正苦於以下問題:Golang Bucket.Put方法的具體用法?Golang Bucket.Put怎麽用?Golang Bucket.Put使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在github.com/roasbeef/btcwallet/walletdb.Bucket的用法示例。


在下文中一共展示了Bucket.Put方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: putMinedBalance

func putMinedBalance(ns walletdb.Bucket, amt btcutil.Amount) error {
    v := make([]byte, 8)
    byteOrder.PutUint64(v, uint64(amt))
    err := ns.Put(rootMinedBalance, v)
    if err != nil {
        str := "failed to put balance"
        return storeError(ErrDatabase, str, err)
    }
    return nil
}
開發者ID:Roasbeef,項目名稱:btcwallet,代碼行數:10,代碼來源:db.go

示例2: testPutValues

// testPutValues stores all of the provided key/value pairs in the provided
// bucket while checking for errors.
func testPutValues(tc *testContext, bucket walletdb.Bucket, values map[string]string) bool {
    for k, v := range values {
        var vBytes []byte
        if v != "" {
            vBytes = []byte(v)
        }
        if err := bucket.Put([]byte(k), vBytes); err != nil {
            tc.t.Errorf("Put: unexpected error: %v", err)
            return false
        }
    }

    return true
}
開發者ID:Roasbeef,項目名稱:btcwallet,代碼行數:16,代碼來源:interface_test.go

示例3: testBucketInterface

// testBucketInterface ensures the bucket interface is working properly by
// exercising all of its functions.
func testBucketInterface(tc *testContext, bucket walletdb.Bucket) bool {
    if bucket.Writable() != tc.isWritable {
        tc.t.Errorf("Bucket writable state does not match.")
        return false
    }

    if tc.isWritable {
        // keyValues holds the keys and values to use when putting
        // values into the bucket.
        var keyValues = map[string]string{
            "bucketkey1": "foo1",
            "bucketkey2": "foo2",
            "bucketkey3": "foo3",
        }
        if !testPutValues(tc, bucket, keyValues) {
            return false
        }

        if !testGetValues(tc, bucket, keyValues) {
            return false
        }

        // Iterate all of the keys using ForEach while making sure the
        // stored values are the expected values.
        keysFound := make(map[string]struct{}, len(keyValues))
        err := bucket.ForEach(func(k, v []byte) error {
            kString := string(k)
            wantV, ok := keyValues[kString]
            if !ok {
                return fmt.Errorf("ForEach: key '%s' should "+
                    "exist", kString)
            }

            if !reflect.DeepEqual(v, []byte(wantV)) {
                return fmt.Errorf("ForEach: value for key '%s' "+
                    "does not match - got %s, want %s",
                    kString, v, wantV)
            }

            keysFound[kString] = struct{}{}
            return nil
        })
        if err != nil {
            tc.t.Errorf("%v", err)
            return false
        }

        // Ensure all keys were iterated.
        for k := range keyValues {
            if _, ok := keysFound[k]; !ok {
                tc.t.Errorf("ForEach: key '%s' was not iterated "+
                    "when it should have been", k)
                return false
            }
        }

        // Delete the keys and ensure they were deleted.
        if !testDeleteValues(tc, bucket, keyValues) {
            return false
        }
        if !testGetValues(tc, bucket, rollbackValues(keyValues)) {
            return false
        }

        // Ensure creating a new bucket works as expected.
        testBucketName := []byte("testbucket")
        testBucket, err := bucket.CreateBucket(testBucketName)
        if err != nil {
            tc.t.Errorf("CreateBucket: unexpected error: %v", err)
            return false
        }
        if !testNestedBucket(tc, testBucket) {
            return false
        }

        // Ensure creating a bucket that already exists fails with the
        // expected error.
        wantErr := walletdb.ErrBucketExists
        if _, err := bucket.CreateBucket(testBucketName); err != wantErr {
            tc.t.Errorf("CreateBucket: unexpected error - got %v, "+
                "want %v", err, wantErr)
            return false
        }

        // Ensure CreateBucketIfNotExists returns an existing bucket.
        testBucket, err = bucket.CreateBucketIfNotExists(testBucketName)
        if err != nil {
            tc.t.Errorf("CreateBucketIfNotExists: unexpected "+
                "error: %v", err)
            return false
        }
        if !testNestedBucket(tc, testBucket) {
            return false
        }

        // Ensure retrieving and existing bucket works as expected.
        testBucket = bucket.Bucket(testBucketName)
        if !testNestedBucket(tc, testBucket) {
//.........這裏部分代碼省略.........
開發者ID:Roasbeef,項目名稱:btcwallet,代碼行數:101,代碼來源:interface_test.go


注:本文中的github.com/roasbeef/btcwallet/walletdb.Bucket.Put方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。