aws_db_esdk/deps/aws_cryptography_dbEncryptionSdk_dynamoDb/conversions/
error.rs

1// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.
2// SPDX-License-Identifier: Apache-2.0
3// Do not modify this file. This file is machine generated, and any changes to it will be overwritten.
4/// Wraps up an arbitrary Rust Error value as a Dafny Error
5pub fn to_opaque_error(
6    value: String,
7) -> ::dafny_runtime::Rc<
8    crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error,
9> {
10    let error_msg = value.clone();
11    let error_msg =
12        ::dafny_runtime::dafny_runtime_conversions::unicode_chars_false::string_to_dafny_string(
13            &error_msg,
14        );
15    let error_obj: ::dafny_runtime::Object<::dafny_runtime::DynAny> =
16        ::dafny_runtime::Object(Some(::dafny_runtime::Rc::new(
17            ::dafny_runtime::UnsafeCell::new(value),
18        )));
19    ::dafny_runtime::Rc::new(
20        crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::OpaqueWithText {
21            obj: error_obj,
22	    objMessage: error_msg
23        },
24    )
25}
26
27/// Wraps up an arbitrary Rust Error value as a Dafny Result<T, Error>.Failure
28pub fn to_opaque_error_result<T: ::dafny_runtime::DafnyType>(value: String) ->
29    ::dafny_runtime::Rc<
30        crate::_Wrappers_Compile::Result<
31            T,
32            ::dafny_runtime::Rc<crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error>
33        >
34    >
35{
36    ::dafny_runtime::Rc::new(crate::_Wrappers_Compile::Result::Failure {
37        error: to_opaque_error(value),
38    })
39}
40pub fn to_dafny(
41    value: crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error,
42) -> ::dafny_runtime::Rc<
43    crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error,
44> {
45    ::dafny_runtime::Rc::new(match value {
46        crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::DynamoDbEncryptionException { message } =>
47    crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::DynamoDbEncryptionException {
48        message: ::dafny_runtime::dafny_runtime_conversions::unicode_chars_false::string_to_dafny_string(&message),
49    },
50crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::AwsCryptographicPrimitivesError { error } =>
51    crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::AwsCryptographyPrimitives {
52        AwsCryptographyPrimitives: crate::deps::aws_cryptography_primitives::conversions::error::to_dafny(error),
53    },
54crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::DynamoDB_20120810Error { error } =>
55    crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::ComAmazonawsDynamodb {
56        ComAmazonawsDynamodb: crate::deps::com_amazonaws_dynamodb::conversions::error::to_dafny(error),
57    },
58crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::AwsCryptographicMaterialProvidersError { error } =>
59    crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::AwsCryptographyMaterialProviders {
60        AwsCryptographyMaterialProviders: crate::deps::aws_cryptography_materialProviders::conversions::error::to_dafny(error),
61    },
62crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::StructuredEncryptionError { error } =>
63    crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::AwsCryptographyDbEncryptionSdkStructuredEncryption {
64        AwsCryptographyDbEncryptionSdkStructuredEncryption: crate::deps::aws_cryptography_dbEncryptionSdk_structuredEncryption::conversions::error::to_dafny(error),
65    },
66crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::KeyStoreError { error } =>
67    crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::AwsCryptographyKeyStore {
68        AwsCryptographyKeyStore: crate::deps::aws_cryptography_keyStore::conversions::error::to_dafny(error),
69    },
70        crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::CollectionOfErrors { list, message } =>
71            crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::CollectionOfErrors {
72                message: ::dafny_runtime::dafny_runtime_conversions::unicode_chars_false::string_to_dafny_string(&message),
73                list: ::dafny_runtime::dafny_runtime_conversions::vec_to_dafny_sequence(&list, |e| to_dafny(e.clone()))
74            },
75        crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::ValidationError(inner) =>
76            crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::Opaque {
77                obj: {
78                    let rc = ::dafny_runtime::Rc::new(inner) as ::dafny_runtime::Rc<::dafny_runtime::DynAny>;
79                    // safety: `rc` is new, ensuring it has refcount 1 and is uniquely owned.
80                    // we should use `dafny_runtime_conversions::rc_struct_to_dafny_class` once it
81                    // accepts unsized types (https://github.com/dafny-lang/dafny/pull/5769)
82                    unsafe { ::dafny_runtime::Object::from_rc(rc) }
83                },
84            },
85            crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::Opaque { obj } =>
86            crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::Opaque {
87                obj: ::dafny_runtime::Object(obj.0)
88            },
89            crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::OpaqueWithText { obj, objMessage } =>
90            crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::OpaqueWithText {
91                obj: ::dafny_runtime::Object(obj.0),
92                objMessage: ::dafny_runtime::dafny_runtime_conversions::unicode_chars_false::string_to_dafny_string(&objMessage),
93            },
94    })
95}
96
97#[allow(dead_code)]
98pub fn from_dafny(
99    dafny_value: ::dafny_runtime::Rc<
100        crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error,
101    >,
102) -> crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error {
103    match ::std::borrow::Borrow::borrow(&dafny_value) {
104        crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::DynamoDbEncryptionException { message } =>
105    crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::DynamoDbEncryptionException {
106        message: ::dafny_runtime::dafny_runtime_conversions::unicode_chars_false::dafny_string_to_string(&message),
107    },
108crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::AwsCryptographyPrimitives { AwsCryptographyPrimitives } =>
109    crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::AwsCryptographicPrimitivesError {
110        error: crate::deps::aws_cryptography_primitives::conversions::error::from_dafny(AwsCryptographyPrimitives.clone()),
111    },
112crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::ComAmazonawsDynamodb { ComAmazonawsDynamodb } =>
113    crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::DynamoDB_20120810Error {
114        error: crate::deps::com_amazonaws_dynamodb::conversions::error::from_dafny(ComAmazonawsDynamodb.clone()),
115    },
116crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::AwsCryptographyMaterialProviders { AwsCryptographyMaterialProviders } =>
117    crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::AwsCryptographicMaterialProvidersError {
118        error: crate::deps::aws_cryptography_materialProviders::conversions::error::from_dafny(AwsCryptographyMaterialProviders.clone()),
119    },
120crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::AwsCryptographyDbEncryptionSdkStructuredEncryption { AwsCryptographyDbEncryptionSdkStructuredEncryption } =>
121    crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::StructuredEncryptionError {
122        error: crate::deps::aws_cryptography_dbEncryptionSdk_structuredEncryption::conversions::error::from_dafny(AwsCryptographyDbEncryptionSdkStructuredEncryption.clone()),
123    },
124crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::AwsCryptographyKeyStore { AwsCryptographyKeyStore } =>
125    crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::KeyStoreError {
126        error: crate::deps::aws_cryptography_keyStore::conversions::error::from_dafny(AwsCryptographyKeyStore.clone()),
127    },
128        crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::CollectionOfErrors { list, message } =>
129            crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::CollectionOfErrors {
130                message: ::dafny_runtime::dafny_runtime_conversions::unicode_chars_false::dafny_string_to_string(&message),
131                list: ::dafny_runtime::dafny_runtime_conversions::dafny_sequence_to_vec(&list, |e| from_dafny(e.clone()))
132            },
133        crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::Opaque { obj } =>
134            crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::Opaque {
135                obj: obj.clone()
136            },
137            crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::Opaque { obj } =>
138            {
139                use ::std::any::Any;
140                if ::dafny_runtime::is_object!(obj, crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::ValidationError) {
141                    let typed = ::dafny_runtime::cast_object!(obj.clone(), crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::ValidationError);
142                    crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::ValidationError(
143                        // safety: dafny_class_to_struct will increment ValidationError's Rc
144                        unsafe {
145                            ::dafny_runtime::dafny_runtime_conversions::object::dafny_class_to_struct(typed)
146                        }
147                    )
148                } else {
149                    crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::Opaque {
150                        obj: obj.clone()
151                    }
152                }
153            },
154            crate::r#software::amazon::cryptography::dbencryptionsdk::dynamodb::internaldafny::types::Error::OpaqueWithText { obj, objMessage } =>
155            {
156                use ::std::any::Any;
157                if ::dafny_runtime::is_object!(obj, crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::ValidationError) {
158                    let typed = ::dafny_runtime::cast_object!(obj.clone(), crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::ValidationError);
159                    crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::ValidationError(
160                        // safety: dafny_class_to_struct will increment ValidationError's Rc
161                        unsafe {
162                            ::dafny_runtime::dafny_runtime_conversions::object::dafny_class_to_struct(typed)
163                        }
164                    )
165                } else {
166                    crate::deps::aws_cryptography_dbEncryptionSdk_dynamoDb::types::error::Error::OpaqueWithText {
167                        obj: obj.clone(),
168                        objMessage: ::dafny_runtime::dafny_runtime_conversions::unicode_chars_false::dafny_string_to_string(&objMessage),
169                    }
170                }
171            },
172    }
173}