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
@ -72,7 +72,7 @@ class SecretString(String):
|
|||||||
class IntString(common.BasePrimitiveType):
|
class IntString(common.BasePrimitiveType):
|
||||||
"""CLI Integer or String"""
|
"""CLI Integer or String"""
|
||||||
|
|
||||||
imports: set[str] = {"crate::common::IntString"}
|
imports: set[str] = {"openstack_sdk::types::IntString"}
|
||||||
type_hint: str = "IntString"
|
type_hint: str = "IntString"
|
||||||
clap_macros: set[str] = set()
|
clap_macros: set[str] = set()
|
||||||
|
|
||||||
@ -80,7 +80,7 @@ class IntString(common.BasePrimitiveType):
|
|||||||
class NumString(common.BasePrimitiveType):
|
class NumString(common.BasePrimitiveType):
|
||||||
"""CLI Number or String"""
|
"""CLI Number or String"""
|
||||||
|
|
||||||
imports: set[str] = {"crate::common::NumString"}
|
imports: set[str] = {"openstack_sdk::types::NumString"}
|
||||||
type_hint: str = "NumString"
|
type_hint: str = "NumString"
|
||||||
clap_macros: set[str] = set()
|
clap_macros: set[str] = set()
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ class NumString(common.BasePrimitiveType):
|
|||||||
class BoolString(common.BasePrimitiveType):
|
class BoolString(common.BasePrimitiveType):
|
||||||
"""CLI Boolean or String"""
|
"""CLI Boolean or String"""
|
||||||
|
|
||||||
imports: set[str] = {"crate::common::BoolString"}
|
imports: set[str] = {"openstack_sdk::types::BoolString"}
|
||||||
type_hint: str = "BoolString"
|
type_hint: str = "BoolString"
|
||||||
clap_macros: set[str] = set()
|
clap_macros: set[str] = set()
|
||||||
|
|
||||||
|
@ -50,6 +50,30 @@ class String(common_rust.String):
|
|||||||
return f"{source_var_name}.clone()"
|
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):
|
class ArrayInput(common_rust.Array):
|
||||||
original_data_type: (
|
original_data_type: (
|
||||||
common_rust.BaseCompoundType
|
common_rust.BaseCompoundType
|
||||||
@ -363,6 +387,32 @@ class ResponseTypeManager(common_rust.TypeManager):
|
|||||||
for x in re.split(common.SPLIT_NAME_RE, model_ref.name)
|
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:
|
def _get_struct_type(self, type_model: model.Struct) -> common_rust.Struct:
|
||||||
"""Convert model.Struct into Rust `Struct`"""
|
"""Convert model.Struct into Rust `Struct`"""
|
||||||
struct_class = self.data_type_mapping[model.Struct]
|
struct_class = self.data_type_mapping[model.Struct]
|
||||||
@ -705,6 +755,11 @@ class RustTuiGenerator(BaseGenerator):
|
|||||||
"crate::cloud_worker::ConfirmableRequest"
|
"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 = {
|
context = {
|
||||||
"additional_imports": additional_imports,
|
"additional_imports": additional_imports,
|
||||||
"operation_id": operation_id,
|
"operation_id": operation_id,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user