Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
R
rust-rocksdb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
fangzongwu
rust-rocksdb
Commits
0a5e010a
Commit
0a5e010a
authored
Jul 06, 2017
by
Cholerae Hu
Committed by
GitHub
Jul 06, 2017
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #89 from pingcap/hyq/optionsclone
rocksdb: implement Clone trait for Options
parents
7ad71128
166b17f3
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
28 additions
and
0 deletions
+28
-0
c.cc
librocksdb_sys/crocksdb/c.cc
+4
-0
c.h
librocksdb_sys/crocksdb/rocksdb/c.h
+1
-0
lib.rs
librocksdb_sys/src/lib.rs
+1
-0
rocksdb_options.rs
src/rocksdb_options.rs
+14
-0
test_rocksdb_options.rs
tests/test_rocksdb_options.rs
+8
-0
No files found.
librocksdb_sys/crocksdb/c.cc
View file @
0a5e010a
...
...
@@ -1590,6 +1590,10 @@ crocksdb_options_t* crocksdb_options_create() {
return
new
crocksdb_options_t
;
}
crocksdb_options_t
*
crocksdb_options_copy
(
const
crocksdb_options_t
*
other
)
{
return
new
crocksdb_options_t
{
Options
(
other
->
rep
)
};
}
void
crocksdb_options_destroy
(
crocksdb_options_t
*
options
)
{
delete
options
;
}
...
...
librocksdb_sys/crocksdb/rocksdb/c.h
View file @
0a5e010a
...
...
@@ -602,6 +602,7 @@ extern C_ROCKSDB_LIBRARY_API void crocksdb_options_set_cuckoo_table_factory(
/* Options */
extern
C_ROCKSDB_LIBRARY_API
crocksdb_options_t
*
crocksdb_options_create
();
extern
C_ROCKSDB_LIBRARY_API
crocksdb_options_t
*
crocksdb_options_copy
(
const
crocksdb_options_t
*
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_options_destroy
(
crocksdb_options_t
*
);
extern
C_ROCKSDB_LIBRARY_API
void
crocksdb_options_increase_parallelism
(
crocksdb_options_t
*
opt
,
int
total_threads
);
...
...
librocksdb_sys/src/lib.rs
View file @
0a5e010a
...
...
@@ -237,6 +237,7 @@ macro_rules! ffi_try {
extern
"C"
{
pub
fn
crocksdb_get_options_cf
(
db
:
*
mut
DBInstance
,
cf
:
*
mut
DBCFHandle
)
->
*
mut
DBOptions
;
pub
fn
crocksdb_options_create
()
->
*
mut
DBOptions
;
pub
fn
crocksdb_options_copy
(
opts
:
*
const
DBOptions
)
->
*
mut
DBOptions
;
pub
fn
crocksdb_options_destroy
(
opts
:
*
mut
DBOptions
);
pub
fn
crocksdb_cache_create_lru
(
capacity
:
size_t
)
->
*
mut
DBCache
;
pub
fn
crocksdb_cache_destroy
(
cache
:
*
mut
DBCache
);
...
...
src/rocksdb_options.rs
View file @
0a5e010a
...
...
@@ -319,6 +319,20 @@ impl Default for Options {
}
}
impl
Clone
for
Options
{
fn
clone
(
&
self
)
->
Self
{
assert
!
(
self
.filter
.is_none
());
unsafe
{
let
opts
=
crocksdb_ffi
::
crocksdb_options_copy
(
self
.inner
);
assert
!
(
!
opts
.is_null
());
Options
{
inner
:
opts
,
filter
:
None
,
}
}
}
}
impl
Options
{
pub
fn
new
()
->
Options
{
Options
::
default
()
...
...
tests/test_rocksdb_options.rs
View file @
0a5e010a
...
...
@@ -376,3 +376,11 @@ fn test_get_compression_per_level() {
let
v2
=
opts2
.get_compression_per_level
();
assert_eq!
(
v2
.len
(),
0
);
}
#[test]
fn
test_clone_options
()
{
let
mut
opts
=
Options
::
new
();
opts
.compression
(
DBCompressionType
::
DBSnappy
);
let
opts2
=
opts
.clone
();
assert_eq!
(
opts
.get_compression
(),
opts2
.get_compression
());
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment