Skip to content

Commit

Permalink
refactor: rm intodart_type
Browse files Browse the repository at this point in the history
  • Loading branch information
fzyzcjy committed Apr 9, 2024
1 parent a734e05 commit 5fdb860
Show file tree
Hide file tree
Showing 11 changed files with 3 additions and 107 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,4 @@ use crate::codegen::generator::wire::rust::spec_generator::codec::dco::encoder::
use crate::codegen::ir::pack::IrPack;

impl<'a> WireRustCodecDcoGeneratorEncoderTrait for BoxedWireRustCodecDcoGenerator<'a> {
fn intodart_type(&self, ir_pack: &IrPack) -> String {
WireRustCodecDcoGenerator::new(self.ir.inner.clone(), self.context).intodart_type(ir_pack)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,47 +14,6 @@ use crate::codegen::ir::ty::{IrType, IrTypeTrait};
use itertools::Itertools;

impl<'a> WireRustCodecDcoGeneratorEncoderTrait for DelegateWireRustCodecDcoGenerator<'a> {
fn intodart_type(&self, ir_pack: &crate::codegen::ir::pack::IrPack) -> String {
match &self.ir {
IrTypeDelegate::PrimitiveEnum(IrTypeDelegatePrimitiveEnum { ir, .. }) => {
let inner = WireRustCodecDcoGenerator::new(IrType::from(ir.clone()), self.context);
inner.intodart_type(ir_pack)
}
IrTypeDelegate::Set(IrTypeDelegateSet { inner }) => {
let inner =
WireRustCodecDcoGenerator::new(IrType::from(inner.clone()), self.context);
format!(
"std::collections::HashSet<{}>",
inner.intodart_type(ir_pack)
)
}
IrTypeDelegate::Array(IrTypeDelegateArray { mode, length, .. }) => {
let inner = match mode {
crate::codegen::ir::ty::delegate::IrTypeDelegateArrayMode::General(inner) => {
WireRustCodecDcoGenerator::new(IrType::from(inner.clone()), self.context)
}
crate::codegen::ir::ty::delegate::IrTypeDelegateArrayMode::Primitive(inner) => {
WireRustCodecDcoGenerator::new(IrType::from(inner.clone()), self.context)
}
};
format!("[{}; {}]", inner.intodart_type(ir_pack), length)
}
IrTypeDelegate::Map(IrTypeDelegateMap { key, value, .. }) => {
let key_inner =
WireRustCodecDcoGenerator::new(IrType::from(key.clone()), self.context);
let value_inner =
WireRustCodecDcoGenerator::new(IrType::from(value.clone()), self.context);
format!(
"std::collections::HashMap<{}, {}>",
key_inner.intodart_type(ir_pack),
value_inner.intodart_type(ir_pack)
)
}
// default trait implementation
_ => self.ir.rust_api_type(),
}
}

// the function signature is not covered while the whole body is covered - looks like a bug in coverage tool
// frb-coverage:ignore-start
fn generate_impl_into_dart(&self) -> Option<String> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,6 @@ use crate::codegen::ir::ty::IrTypeTrait;
use itertools::Itertools;

impl<'a> WireRustCodecDcoGeneratorEncoderTrait for EnumRefWireRustCodecDcoGenerator<'a> {
fn intodart_type(&self, ir_pack: &IrPack) -> String {
match &self.ir.get(ir_pack).wrapper_name {
Some(wrapper) => wrapper.clone(),
None => self.ir.rust_api_type(),
}
}

fn generate_impl_into_dart(&self) -> Option<String> {
let src = self.ir.get(self.context.ir_pack);
let (name, _self_path) =
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,4 @@ use crate::codegen::generator::wire::rust::spec_generator::codec::dco::base::*;
use crate::codegen::generator::wire::rust::spec_generator::codec::dco::encoder::ty::WireRustCodecDcoGeneratorEncoderTrait;
use crate::codegen::ir::pack::IrPack;

impl<'a> WireRustCodecDcoGeneratorEncoderTrait for GeneralListWireRustCodecDcoGenerator<'a> {
fn intodart_type(&self, ir_pack: &IrPack) -> String {
format!(
"Vec<{}>",
WireRustCodecDcoGenerator::new(self.ir.inner.clone(), self.context)
.intodart_type(ir_pack)
)
}
}
impl<'a> WireRustCodecDcoGeneratorEncoderTrait for GeneralListWireRustCodecDcoGenerator<'a> {}
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,6 @@ use enum_dispatch::enum_dispatch;
pub(crate) trait WireRustCodecDcoGeneratorEncoderTrait:
WireRustCodecDcoGeneratorImplTrait
{
fn intodart_type(&self, _ir_pack: &IrPack) -> String {
self.ir_type().rust_api_type()
}

fn generate_impl_into_dart(&self) -> Option<String> {
None
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,4 @@ use crate::codegen::generator::wire::rust::spec_generator::codec::dco::base::*;
use crate::codegen::generator::wire::rust::spec_generator::codec::dco::encoder::ty::WireRustCodecDcoGeneratorEncoderTrait;
use crate::codegen::ir::ty::IrType;

impl<'a> WireRustCodecDcoGeneratorEncoderTrait for OptionalWireRustCodecDcoGenerator<'a> {
fn intodart_type(&self, ir_pack: &crate::codegen::ir::pack::IrPack) -> String {
let inner =
WireRustCodecDcoGenerator::new(IrType::from(self.ir.inner.clone()), self.context);
format!("Option<{}>", inner.intodart_type(ir_pack))
}
}
impl<'a> WireRustCodecDcoGeneratorEncoderTrait for OptionalWireRustCodecDcoGenerator<'a> {}
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,4 @@ use crate::codegen::ir::ty::primitive::IrTypePrimitive;
use crate::codegen::ir::ty::IrTypeTrait;

impl<'a> WireRustCodecDcoGeneratorEncoderTrait for PrimitiveWireRustCodecDcoGenerator<'a> {
fn intodart_type(&self, _ir_pack: &IrPack) -> String {
match self.ir {
IrTypePrimitive::Unit => String::from("()"),
_ => self.ir.rust_api_type(),
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,4 @@ use crate::codegen::generator::wire::rust::spec_generator::codec::dco::encoder::
use crate::codegen::ir::pack::IrPack;
use itertools::Itertools;

impl<'a> WireRustCodecDcoGeneratorEncoderTrait for RecordWireRustCodecDcoGenerator<'a> {
fn intodart_type(&self, ir_pack: &IrPack) -> String {
let values = self
.ir
.values
.iter()
.map(|e| WireRustCodecDcoGenerator::new(e.clone(), self.context).intodart_type(ir_pack))
.join(",");
format!("({values},)")
}
}
impl<'a> WireRustCodecDcoGeneratorEncoderTrait for RecordWireRustCodecDcoGenerator<'a> {}
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,6 @@ impl<'a> WireRustCodecDcoGeneratorEncoderTrait for RustAutoOpaqueWireRustCodecDc
None
}
}

fn intodart_type(&self, _ir_pack: &IrPack) -> String {
if self.ir.ownership_mode == OwnershipMode::Owned {
rust_auto_opaque_local_struct_type(&self.ir)
} else {
// We do not generate IntoDart for this, so this should not be called
// frb-coverage:ignore-start
unreachable!()
// frb-coverage:ignore-end
}
}
}

// Similar to "mirror"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ use crate::codegen::ir::ty::IrTypeTrait;
use itertools::Itertools;

impl<'a> WireRustCodecDcoGeneratorEncoderTrait for StructRefWireRustCodecDcoGenerator<'a> {
fn intodart_type(&self, ir_pack: &IrPack) -> String {
let wrapper = &self.ir.get(ir_pack).wrapper_name;
wrapper.clone().unwrap_or(self.ir.rust_api_type())
}

fn generate_impl_into_dart(&self) -> Option<String> {
let src = self.ir.get(self.context.ir_pack);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,6 @@ pub(crate) struct WireRustDumpInfoType {
safe_ident: String,
rust_wire_type: HashMap<Target, String>,
rust_wire_modifier: HashMap<Target, String>,
// TODO
// intodart_type: String,
wrapper_struct_name: Option<String>,
}

Expand All @@ -48,7 +46,6 @@ pub(super) fn generate_dump_info(
rust_wire_modifier: Target::iter()
.map(|target| (target, cst_gen.rust_wire_modifier(target)))
.collect(),
// intodart_type: gen.intodart_type(context.ir_pack),
wrapper_struct_name: gen.wrapper_struct_name(),
}
})
Expand Down

0 comments on commit 5fdb860

Please sign in to comment.