-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathcreate_client.rs
66 lines (56 loc) · 2.76 KB
/
create_client.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
use dafny_runtime::Rc;
use dafny_runtime::Object;
use crate::implementation_from_dafny::software::amazon::cryptography::services::dynamodb::internaldafny::types::IDynamoDBClient;
use crate::implementation_from_dafny::software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error;
use crate::implementation_from_dafny::_Wrappers_Compile;
use std::sync::LazyLock;
use crate::intercept::DbEsdkInterceptor;
static DAFNY_TOKIO_RUNTIME: LazyLock<tokio::runtime::Runtime> = LazyLock::new(|| {
tokio::runtime::Builder::new_multi_thread()
.enable_all()
.build()
.unwrap()
});
pub mod _CreateInterceptedDDBClient_Compile {
pub struct _default {}
}
impl _CreateInterceptedDDBClient_Compile::_default {
pub fn CreateInterceptedDDBClient(config : &Rc<crate::implementation_from_dafny::software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::DynamoDbTablesEncryptionConfig>)
-> Rc<_Wrappers_Compile::Result<Object<dyn IDynamoDBClient>, Rc<Error>>>
{
let table_configs = crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb_transforms::conversions::dynamo_db_tables_encryption_config::_dynamo_db_tables_encryption_config::plain_from_dafny(config);
let shared_config = DAFNY_TOKIO_RUNTIME.block_on(aws_config::load_defaults(
aws_config::BehaviorVersion::latest()));
let shared_config = shared_config
.to_builder()
.endpoint_url("http://localhost:8000")
.build();
let dynamo_config = aws_sdk_dynamodb::config::Builder::from(&shared_config)
.interceptor(DbEsdkInterceptor::new(table_configs).unwrap())
.build();
let inner = aws_sdk_dynamodb::Client::from_conf(dynamo_config);
let client = crate::deps::com_amazonaws_dynamodb::client::Client { inner };
let dafny_client = ::dafny_runtime::upcast_object()(::dafny_runtime::object::new(client));
Rc::new(crate::r#_Wrappers_Compile::Result::Success {
value: dafny_client,
})
}
pub fn CreateVanillaDDBClient()
-> Rc<_Wrappers_Compile::Result<Object<dyn IDynamoDBClient>, Rc<Error>>>
{
let shared_config = DAFNY_TOKIO_RUNTIME.block_on(aws_config::load_defaults(
aws_config::BehaviorVersion::latest()));
let shared_config = shared_config
.to_builder()
.endpoint_url("http://localhost:8000")
.build();
let inner = aws_sdk_dynamodb::Client::new(&shared_config);
let client = crate::deps::com_amazonaws_dynamodb::client::Client { inner };
let dafny_client = ::dafny_runtime::upcast_object()(::dafny_runtime::object::new(client));
Rc::new(crate::r#_Wrappers_Compile::Result::Success {
value: dafny_client,
})
}
}