Import IntString from openstack_sdk
We are moving IntString, NumString, BoolString from cli to sdk so that we can also use them in tui. Change-Id: Ib2dcdd2f54481feacb7848037fb26fae4ef5d738
This commit is contained in:
parent
e0f1e9c0b2
commit
0f870d5a5f
codegenerator
@ -72,7 +72,7 @@ class SecretString(String):
|
||||
class IntString(common.BasePrimitiveType):
|
||||
"""CLI Integer or String"""
|
||||
|
||||
imports: set[str] = {"crate::common::IntString"}
|
||||
imports: set[str] = {"openstack_sdk::types::IntString"}
|
||||
type_hint: str = "IntString"
|
||||
clap_macros: set[str] = set()
|
||||
|
||||
@ -80,7 +80,7 @@ class IntString(common.BasePrimitiveType):
|
||||
class NumString(common.BasePrimitiveType):
|
||||
"""CLI Number or String"""
|
||||
|
||||
imports: set[str] = {"crate::common::NumString"}
|
||||
imports: set[str] = {"openstack_sdk::types::NumString"}
|
||||
type_hint: str = "NumString"
|
||||
clap_macros: set[str] = set()
|
||||
|
||||
@ -88,7 +88,7 @@ class NumString(common.BasePrimitiveType):
|
||||
class BoolString(common.BasePrimitiveType):
|
||||
"""CLI Boolean or String"""
|
||||
|
||||
imports: set[str] = {"crate::common::BoolString"}
|
||||
imports: set[str] = {"openstack_sdk::types::BoolString"}
|
||||
type_hint: str = "BoolString"
|
||||
clap_macros: set[str] = set()
|
||||
|
||||
|
@ -50,6 +50,30 @@ class String(common_rust.String):
|
||||
return f"{source_var_name}.clone()"
|
||||
|
||||
|
||||
class IntString(common.BasePrimitiveType):
|
||||
"""TUI Integer or String"""
|
||||
|
||||
imports: set[str] = {"openstack_sdk::types::IntString"}
|
||||
type_hint: str = "IntString"
|
||||
clap_macros: set[str] = set()
|
||||
|
||||
|
||||
class NumString(common.BasePrimitiveType):
|
||||
"""TUI Number or String"""
|
||||
|
||||
imports: set[str] = {"openstack_sdk::types::NumString"}
|
||||
type_hint: str = "NumString"
|
||||
clap_macros: set[str] = set()
|
||||
|
||||
|
||||
class BoolString(common.BasePrimitiveType):
|
||||
"""TUI Boolean or String"""
|
||||
|
||||
imports: set[str] = {"openstack_sdk::types::BoolString"}
|
||||
type_hint: str = "BoolString"
|
||||
clap_macros: set[str] = set()
|
||||
|
||||
|
||||
class ArrayInput(common_rust.Array):
|
||||
original_data_type: (
|
||||
common_rust.BaseCompoundType
|
||||
@ -363,6 +387,32 @@ class ResponseTypeManager(common_rust.TypeManager):
|
||||
for x in re.split(common.SPLIT_NAME_RE, model_ref.name)
|
||||
)
|
||||
|
||||
def _simplify_oneof_combinations(self, type_model, kinds):
|
||||
"""Simplify certain known oneOf combinations"""
|
||||
kinds_classes = [x["class"] for x in kinds]
|
||||
if (
|
||||
common_rust.String in kinds_classes
|
||||
and common_rust.Number in kinds_classes
|
||||
):
|
||||
# oneOf [string, number] => NumString
|
||||
kinds.clear()
|
||||
kinds.append({"local": NumString(), "class": NumString})
|
||||
elif (
|
||||
common_rust.String in kinds_classes
|
||||
and common_rust.Integer in kinds_classes
|
||||
):
|
||||
# oneOf [string, integer] => NumString
|
||||
kinds.clear()
|
||||
kinds.append({"local": IntString(), "class": IntString})
|
||||
elif (
|
||||
common_rust.String in kinds_classes
|
||||
and common_rust.Boolean in kinds_classes
|
||||
):
|
||||
# oneOf [string, boolean] => String
|
||||
kinds.clear()
|
||||
kinds.append({"local": BoolString(), "class": BoolString})
|
||||
super()._simplify_oneof_combinations(type_model, kinds)
|
||||
|
||||
def _get_struct_type(self, type_model: model.Struct) -> common_rust.Struct:
|
||||
"""Convert model.Struct into Rust `Struct`"""
|
||||
struct_class = self.data_type_mapping[model.Struct]
|
||||
@ -705,6 +755,11 @@ class RustTuiGenerator(BaseGenerator):
|
||||
"crate::cloud_worker::ConfirmableRequest"
|
||||
)
|
||||
|
||||
additional_imports.update(response_type_manager.get_imports())
|
||||
# Deserialize is already in template since it is uncoditionally required
|
||||
additional_imports.discard("serde::Deserialize")
|
||||
additional_imports.discard("serde::Serialize")
|
||||
|
||||
context = {
|
||||
"additional_imports": additional_imports,
|
||||
"operation_id": operation_id,
|
||||
|
Loading…
x
Reference in New Issue
Block a user