@@ -31,7 +31,7 @@ use std::{
31
31
32
32
type Memory = VirtualMemory < DefaultMemoryImpl > ;
33
33
34
- #[ derive( Clone , Default , Deserialize , Serialize ) ]
34
+ #[ derive( Clone , Deserialize , Serialize ) ]
35
35
pub struct Bucket {
36
36
pub name : String ,
37
37
pub file_count : u64 ,
@@ -54,6 +54,29 @@ pub struct Bucket {
54
54
pub trusted_eddsa_pub_keys : Vec < ByteN < 32 > > ,
55
55
}
56
56
57
+ impl Default for Bucket {
58
+ fn default ( ) -> Self {
59
+ Self {
60
+ name : "default" . to_string ( ) ,
61
+ file_count : 0 ,
62
+ file_id : 0 ,
63
+ folder_count : 1 , // The root folder 0 is created by default
64
+ folder_id : 1 ,
65
+ max_file_size : MAX_FILE_SIZE ,
66
+ max_folder_depth : 10 ,
67
+ max_children : 100 ,
68
+ max_custom_data_size : 1024 * 4 ,
69
+ enable_hash_index : false ,
70
+ status : 0 ,
71
+ visibility : 0 ,
72
+ managers : BTreeSet :: new ( ) ,
73
+ auditors : BTreeSet :: new ( ) ,
74
+ trusted_ecdsa_pub_keys : Vec :: new ( ) ,
75
+ trusted_eddsa_pub_keys : Vec :: new ( ) ,
76
+ }
77
+ }
78
+ }
79
+
57
80
impl Bucket {
58
81
pub fn read_permission (
59
82
& self ,
@@ -1267,10 +1290,6 @@ mod test {
1267
1290
#[ test]
1268
1291
fn test_fs ( ) {
1269
1292
state:: with_mut ( |b| {
1270
- b. name = "default" . to_string ( ) ;
1271
- b. max_file_size = MAX_FILE_SIZE ;
1272
- b. max_folder_depth = 10 ;
1273
- b. max_children = 1000 ;
1274
1293
b. enable_hash_index = true ;
1275
1294
} ) ;
1276
1295
@@ -1284,16 +1303,14 @@ mod test {
1284
1303
..Default :: default ( )
1285
1304
} )
1286
1305
. unwrap ( ) ;
1287
- assert_eq ! ( f1, 1 ) ;
1306
+ assert_eq ! ( f1, 0 ) ;
1288
1307
1289
- assert ! ( fs:: get_full_chunks( 0 ) . is_err( ) ) ;
1290
1308
let f1_data = fs:: get_full_chunks ( f1) . unwrap ( ) ;
1291
1309
assert ! ( f1_data. is_empty( ) ) ;
1292
1310
1293
1311
let f1_meta = fs:: get_file ( f1) . unwrap ( ) ;
1294
1312
assert_eq ! ( f1_meta. name, "f1.bin" ) ;
1295
1313
1296
- assert ! ( fs:: update_chunk( 0 , 0 , 999 , [ 0u8 ; 32 ] . to_vec( ) , |_| Ok ( ( ) ) ) . is_err( ) ) ;
1297
1314
let _ = fs:: update_chunk ( f1, 0 , 999 , [ 0u8 ; 32 ] . to_vec ( ) , |_| Ok ( ( ) ) ) . unwrap ( ) ;
1298
1315
let _ = fs:: update_chunk ( f1, 1 , 1000 , [ 0u8 ; 32 ] . to_vec ( ) , |_| Ok ( ( ) ) ) . unwrap ( ) ;
1299
1316
let f1_data = fs:: get_full_chunks ( f1) . unwrap ( ) ;
@@ -1318,7 +1335,7 @@ mod test {
1318
1335
..Default :: default ( )
1319
1336
} )
1320
1337
. unwrap ( ) ;
1321
- assert_eq ! ( f2, 2 ) ;
1338
+ assert_eq ! ( f2, 1 ) ;
1322
1339
fs:: update_chunk ( f2, 0 , 999 , [ 0u8 ; 16 ] . to_vec ( ) , |_| Ok ( ( ) ) ) . unwrap ( ) ;
1323
1340
fs:: update_chunk ( f2, 1 , 1000 , [ 1u8 ; 16 ] . to_vec ( ) , |_| Ok ( ( ) ) ) . unwrap ( ) ;
1324
1341
fs:: update_chunk ( f1, 3 , 1000 , [ 1u8 ; 16 ] . to_vec ( ) , |_| Ok ( ( ) ) ) . unwrap ( ) ;
@@ -1360,7 +1377,7 @@ mod test {
1360
1377
. into_iter( )
1361
1378
. map( |v| v. id)
1362
1379
. collect:: <Vec <_>>( ) ,
1363
- vec![ 2 , 1 ]
1380
+ vec![ f2 , f1 ]
1364
1381
) ;
1365
1382
1366
1383
assert_eq ! (
@@ -1391,9 +1408,9 @@ mod test {
1391
1408
vec![ 2 , 1 ]
1392
1409
) ;
1393
1410
1394
- fs:: move_file ( 1 , 0 , 1 , 1000 ) . unwrap ( ) ;
1411
+ fs:: move_file ( f1 , 0 , 1 , 1000 ) . unwrap ( ) ;
1395
1412
assert_eq ! (
1396
- fs:: get_file_ancestors( 1 ) ,
1413
+ fs:: get_file_ancestors( f1 ) ,
1397
1414
vec![ FolderName {
1398
1415
id: 1 ,
1399
1416
name: "fd1" . to_string( ) ,
@@ -1404,19 +1421,19 @@ mod test {
1404
1421
. into_iter( )
1405
1422
. map( |v| v. id)
1406
1423
. collect:: <Vec <_>>( ) ,
1407
- vec![ 2 ]
1424
+ vec![ f2 ]
1408
1425
) ;
1409
1426
assert_eq ! (
1410
1427
fs:: list_files( 1 , 999 , 999 )
1411
1428
. into_iter( )
1412
1429
. map( |v| v. id)
1413
1430
. collect:: <Vec <_>>( ) ,
1414
- vec![ 1 ]
1431
+ vec![ f1 ]
1415
1432
) ;
1416
1433
1417
- fs:: move_file ( 2 , 0 , 2 , 1000 ) . unwrap ( ) ;
1434
+ fs:: move_file ( f2 , 0 , 2 , 1000 ) . unwrap ( ) ;
1418
1435
assert_eq ! (
1419
- fs:: get_file_ancestors( 2 ) ,
1436
+ fs:: get_file_ancestors( f2 ) ,
1420
1437
vec![ FolderName {
1421
1438
id: 2 ,
1422
1439
name: "fd2" . to_string( ) ,
@@ -1434,7 +1451,7 @@ mod test {
1434
1451
. into_iter( )
1435
1452
. map( |v| v. id)
1436
1453
. collect:: <Vec <_>>( ) ,
1437
- vec![ 2 ]
1454
+ vec![ f2 ]
1438
1455
) ;
1439
1456
1440
1457
fs:: move_folder ( 2 , 0 , 1 , 1000 ) . unwrap ( ) ;
@@ -1446,7 +1463,7 @@ mod test {
1446
1463
} ]
1447
1464
) ;
1448
1465
assert_eq ! (
1449
- fs:: get_file_ancestors( 2 ) ,
1466
+ fs:: get_file_ancestors( f2 ) ,
1450
1467
vec![
1451
1468
FolderName {
1452
1469
id: 2 ,
@@ -1460,15 +1477,15 @@ mod test {
1460
1477
) ;
1461
1478
1462
1479
assert_eq ! (
1463
- fs:: batch_delete_subfiles( 0 , BTreeSet :: from( [ 1 , 2 ] ) , 999 ) . unwrap( ) ,
1480
+ fs:: batch_delete_subfiles( 0 , BTreeSet :: from( [ f1 , f2 ] ) , 999 ) . unwrap( ) ,
1464
1481
Vec :: <u32 >:: new( )
1465
1482
) ;
1466
1483
1467
- fs:: move_file ( 1 , 1 , 0 , 1000 ) . unwrap ( ) ;
1468
- fs:: move_file ( 2 , 2 , 0 , 1000 ) . unwrap ( ) ;
1484
+ fs:: move_file ( f1 , 1 , 0 , 1000 ) . unwrap ( ) ;
1485
+ fs:: move_file ( f2 , 2 , 0 , 1000 ) . unwrap ( ) ;
1469
1486
assert_eq ! (
1470
- fs:: batch_delete_subfiles( 0 , BTreeSet :: from( [ 2 , 1 ] ) , 999 ) . unwrap( ) ,
1471
- vec![ 1 , 2 ]
1487
+ fs:: batch_delete_subfiles( 0 , BTreeSet :: from( [ f2 , f1 ] ) , 999 ) . unwrap( ) ,
1488
+ vec![ f1 , f2 ]
1472
1489
) ;
1473
1490
assert ! ( fs:: delete_folder( 1 , 999 , |_| Ok ( ( ) ) ) . is_err( ) ) ;
1474
1491
assert ! ( fs:: delete_folder( 2 , 999 , |_| Ok ( ( ) ) ) . unwrap( ) ) ;
0 commit comments