Skip to content

Commit

Permalink
Adapt to rust 1.85 2024 edition.
Browse files Browse the repository at this point in the history
  • Loading branch information
vaijira committed Feb 21, 2025
1 parent 57a8e75 commit 6bd1681
Show file tree
Hide file tree
Showing 17 changed files with 96 additions and 78 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
strategy:
matrix:
toolchain:
- 1.80.1 # MSRV
- 1.85 # MSRV
steps:
- uses: actions/checkout@v2
- uses: Swatinem/rust-cache@v2
Expand Down Expand Up @@ -43,7 +43,7 @@ jobs:
strategy:
matrix:
toolchain:
- 1.80.1 # MSRV
- 1.85 # MSRV

steps:
- uses: actions/checkout@v2
Expand All @@ -69,7 +69,7 @@ jobs:
strategy:
matrix:
toolchain:
- 1.80.1 # MSRV
- 1.85 # MSRV

steps:
- uses: actions/checkout@v2
Expand Down
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name = "burocratin"
version = "0.2.0"
authors = ["Jorge Perez Burgos <vaijira@gmail.com>"]
edition = "2021"
edition = "2024"

[lib]
crate-type = ["cdylib", "rlib"]
Expand Down Expand Up @@ -68,4 +68,4 @@ opt-level = "z" # 3 => fast, s/z => small
lto = true

[package.metadata.wasm-pack.profile.release]
wasm-opt = ["-Oz"] # O4 => fast, Oz/Os => small
wasm-opt = ["--enable-bulk-memory", "-Oz"] # O4 => fast, Oz/Os => small
6 changes: 5 additions & 1 deletion rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@ export default {
sourcemap: true,
},
plugins: [
rust(),
rust({
extraArgs: {
wasmOpt: [ "-Oz", "--enable-bulk-memory-opt", "--enable-nontrapping-float-to-int" ],
},
}),

copy({
targets: [
Expand Down
6 changes: 3 additions & 3 deletions src/app.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
use std::sync::Arc;

use anyhow::Result;
use dominator::{clone, events, html, with_node, Dom};
use dominator::{Dom, clone, events, html, with_node};
use futures_signals::{
map_ref,
signal::{Mutable, Signal, SignalExt},
};
use gloo_file::{futures::read_as_bytes, Blob};
use gloo_file::{Blob, futures::read_as_bytes};
use wasm_bindgen::{JsCast, UnwrapThrowExt};
use wasm_bindgen_futures::spawn_local;
use web_sys::{Element, HtmlAnchorElement, HtmlElement, HtmlInputElement};
Expand Down Expand Up @@ -42,7 +42,7 @@ impl App {
})
}

fn is_needed_to_generate_report(this: &Arc<Self>) -> impl Signal<Item = bool> {
fn is_needed_to_generate_report(this: &Arc<Self>) -> impl Signal<Item = bool> + use<> {
map_ref! {
let _personal_info_changed = this.personal_info.signal_ref(|_| true),
let records_changed = this.table.table_rows_not_empty() =>
Expand Down
12 changes: 6 additions & 6 deletions src/parsers/degiro.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,15 @@ use crate::data::{

use crate::utils::decimal;

use anyhow::{bail, Context, Result};
use anyhow::{Context, Result, bail};
use chrono::NaiveDate;
use nom::character::complete::anychar;
use nom::multi::many_till;
use nom::sequence::{preceded, separated_pair};
use nom::{
IResult,
error::{VerboseError, context},
};
use nom::{
branch::alt,
bytes::complete::{is_a, take},
Expand All @@ -26,10 +30,6 @@ use nom::{
character::complete::{char, one_of},
multi::many_m_n,
};
use nom::{
error::{context, VerboseError},
IResult,
};

use rust_decimal::prelude::*;

Expand Down Expand Up @@ -401,8 +401,8 @@ impl DegiroParser {
mod tests {
use super::*;
use nom::{
error::{ErrorKind, VerboseError, VerboseErrorKind},
Err as NomErr,
error::{ErrorKind, VerboseError, VerboseErrorKind},
};

#[test]
Expand Down
2 changes: 1 addition & 1 deletion src/parsers/degiro_csv.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use anyhow::{anyhow, Result};
use anyhow::{Result, anyhow};
use rust_decimal::Decimal;
use std::{str::FromStr, sync::Arc};

Expand Down
4 changes: 2 additions & 2 deletions src/parsers/ib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ use crate::{
parsers::util,
utils::decimal,
};
use anyhow::{anyhow, bail, Result};
use anyhow::{Result, anyhow, bail};
use chrono::NaiveDate;
use rust_decimal::Decimal;
use scraper::{node::Element, ElementRef, Html, Selector};
use scraper::{ElementRef, Html, Selector, node::Element};
use selectors::attr::CaseSensitivity;

static OPEN_POSITIONS_SELECTOR: LazyLock<Selector> =
Expand Down
18 changes: 9 additions & 9 deletions src/parsers/ib_csv.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use anyhow::{anyhow, Result};
use anyhow::{Result, anyhow};
use chrono::NaiveDate;
use rust_decimal::Decimal;
use std::{collections::HashMap, str::FromStr, sync::Arc};
Expand Down Expand Up @@ -47,26 +47,26 @@ impl IBCSVParser {
"Open Positions,Header,DataDiscriminator,Asset Category,Currency,Symbol,Quantity,Mult,Cost Price,Cost Basis,Close Price,Value,Unrealized P/L,Code", // OPEN_POSITIONS_BEGIN_STR
"Open Positions,Total,,Stocks,EUR,", // OPEN_POSITIONS_END_STR
"Open Positions,Data,Summary,Stocks,", // OPEN_POSITIONS_STOCK_STR
"Open Positions,Total,,Stocks,", // OPEN_POSITIONS_TOTAL_STR
"Open Positions,Total,,Stocks,", // OPEN_POSITIONS_TOTAL_STR
"Trades,Header,DataDiscriminator,Asset Category,Currency,Account,Symbol,Date/Time,Quantity,T. Price,C. Price,Proceeds,Comm/Fee,Basis,Realized P/L,MTM P/L,Code", // TRADE_BEGIN_STR
"Trades,Header,DataDiscriminator,Asset Category,Currency,Symbol,Date/Time,Quantity,T. Price,C. Price,Proceeds,Comm/Fee,Basis,Realized P/L,MTM P/L,Code", // TRADE_BEGIN_NO_ACCOUNT_STR
"Trades,Total,", // TRADE_END_STR
"Trades,Total,", // TRADE_END_STR
"Trades,Data,Order,Stocks,", // TRADE_STOCK_STR
"Financial Instrument Information,Header,Asset Category,Symbol,Description,Conid,Security ID,Listing Exch,Multiplier,Type,Code", // STOCK_COMPANY_INFO_SECTOR_START_OLD_STR
];

const ES_MSGS: &'static [&'static str] = &[
"Información de instrumento financiero,Header,Categoría de activo,Símbolo,Descripción,Conid,Id. de seguridad,Underlying,Merc. de cotización,Multiplicador,Tipo,Código", // STOCK_COMPANY_INFO_SECTOR_START_STR
"Información de instrumento financiero,Header,Categoría de activo,Símbolo,Descripción,Conid,Id. de seguridad,Underlying,Merc. de cotización,Multiplicador,Tipo,Código", // STOCK_COMPANY_INFO_SECTOR_START_STR
"Información de instrumento financiero,Data,Acciones,", // STOCK_COMPANY_INFO_SECTOR_END_STR
"Posiciones abiertas,Header,DataDiscriminator,Categoría de activo,Divisa,Símbolo,Cantidad,Mult.,Precio de coste,Base de coste,Precio de cierre,Valor,PyG no realizadas,Código", // OPEN_POSITIONS_BEGIN_STR
"Posiciones abiertas,Header,DataDiscriminator,Categoría de activo,Divisa,Símbolo,Cantidad,Mult.,Precio de coste,Base de coste,Precio de cierre,Valor,PyG no realizadas,Código", // OPEN_POSITIONS_BEGIN_STR
"Posiciones abiertas,Total,,Acciones,EUR,", // OPEN_POSITIONS_END_STR
"Posiciones abiertas,Data,Summary,Acciones,", // OPEN_POSITIONS_STOCK_STR
"Posiciones abiertas,Total,,Acciones,", // OPEN_POSITIONS_TOTAL_STR
"Posiciones abiertas,Total,,Acciones,", // OPEN_POSITIONS_TOTAL_STR
"Operaciones,Header,DataDiscriminator,Categoría de activo,Divisa,Cuenta,Símbolo,Fecha/Hora,Cantidad,Precio trans.,Precio de cier.,Productos,Tarifa/com.,Básico,PyG realizadas,MTM P/G,Código", // TRADE_BEGIN_STR
"Operaciones,Header,DataDiscriminator,Categoría de activo,Divisa,Símbolo,Fecha/Hora,Cantidad,Precio trans.,Precio de cier.,Productos,Tarifa/com.,Básico,PyG realizadas,MTM P/G,Código", // TRADE_BEGIN_NO_ACCOUNT_STR
"Operaciones,Total,", // TRADE_END_STR
"Operaciones,Total,", // TRADE_END_STR
"Operaciones,Data,Order,Acciones,", // TRADE_STOCK_STR
"Información de instrumento financiero,Header,Categoría de activo,Símbolo,Descripción,Conid,Id. de seguridad,Merc. de cotización,Multiplicador,Tipo,Código", // STOCK_COMPANY_INFO_SECTOR_START_OLD_STR
"Información de instrumento financiero,Header,Categoría de activo,Símbolo,Descripción,Conid,Id. de seguridad,Merc. de cotización,Multiplicador,Tipo,Código", // STOCK_COMPANY_INFO_SECTOR_START_OLD_STR
];

fn parse_companies_info(
Expand All @@ -89,7 +89,7 @@ impl IBCSVParser {
.find('\n')
.ok_or_else(|| anyhow!("Not found end of companies info section"))?;

let mut rdr = csv::Reader::from_reader((content[start..end_left + end]).as_bytes());
let mut rdr = csv::Reader::from_reader(&content.as_bytes()[start..end_left + end]);

for record_result in rdr.records() {
let record = record_result?;
Expand Down
4 changes: 2 additions & 2 deletions src/personal_info.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
use std::sync::Arc;

use dominator::{clone, events, html, with_node, Dom};
use dominator::{Dom, clone, events, html, with_node};
use futures_signals::signal::Mutable;
use web_sys::HtmlInputElement;

use crate::{
css::{FLEX_CONTAINER_CLASS, FLEX_CONTAINER_ITEM_20_CLASS},
data::{PersonalInformation, DEFAULT_YEAR},
data::{DEFAULT_YEAR, PersonalInformation},
};

pub struct PersonalInfoViewer {
Expand Down
70 changes: 38 additions & 32 deletions src/reports/aeat_720.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use crate::data::{Aeat720Information, Aeat720Record};
use anyhow::{bail, Result};
use anyhow::{Result, bail};
use encoding_rs::ISO_8859_15;
use rust_decimal::{prelude::ToPrimitive, Decimal};
use rust_decimal::{Decimal, prelude::ToPrimitive};
use std::io::Write;

/*
Expand Down Expand Up @@ -597,20 +597,24 @@ mod tests {
fn test_write_numeric_field() {
let mut fields: AeatRegisterArray = [b' '; AEAT_720_REGISTER_SIZE_BYTES];

assert!(Aeat720Field::write_numeric_field(
&mut fields,
DetailRegister::DOCUMENT_ID_FIELD,
AEAT_720_DOCUMENT_ID,
)
.is_ok());
assert!(
Aeat720Field::write_numeric_field(
&mut fields,
DetailRegister::DOCUMENT_ID_FIELD,
AEAT_720_DOCUMENT_ID,
)
.is_ok()
);
assert_eq!(fields[1..4], [b'7', b'2', b'0'],);

assert!(Aeat720Field::write_numeric_field(
&mut fields,
DetailRegister::REGISTER_TYPE_FIELD,
DetailRegister::AEAT_720_DETAIL_REGISTER_TYPE,
)
.is_ok());
assert!(
Aeat720Field::write_numeric_field(
&mut fields,
DetailRegister::REGISTER_TYPE_FIELD,
DetailRegister::AEAT_720_DETAIL_REGISTER_TYPE,
)
.is_ok()
);
assert_eq!(fields[0], b'2');

assert!(
Expand All @@ -637,12 +641,10 @@ mod tests {
[b'2', b'0', b'2', b'0', b'2', b'0', b'2', b'0', b'A']
);

assert!(Aeat720Field::write_field(
&mut fields,
DetailRegister::DECLARED_NIF_FIELD,
"20202020"
)
.is_ok());
assert!(
Aeat720Field::write_field(&mut fields, DetailRegister::DECLARED_NIF_FIELD, "20202020")
.is_ok()
);
assert_eq!(
fields[17..26],
[b'2', b'0', b'2', b'0', b'2', b'0', b'2', b'0', b' ']
Expand All @@ -661,21 +663,25 @@ mod tests {
fn test_write_string_field() {
let mut fields: AeatRegisterArray = [b' '; AEAT_720_REGISTER_SIZE_BYTES];

assert!(Aeat720Field::write_field(
&mut fields,
DetailRegister::STOCK_REPRESENTATION_FIELD,
DetailRegister::AEAT_720_ASSET_REPRESENTATON,
)
.is_ok());
assert!(
Aeat720Field::write_field(
&mut fields,
DetailRegister::STOCK_REPRESENTATION_FIELD,
DetailRegister::AEAT_720_ASSET_REPRESENTATON,
)
.is_ok()
);

assert_eq!(fields[461..462], [b'A']);

assert!(Aeat720Field::write_field(
&mut fields,
DetailRegister::REAL_STATE_REPRESENTATION_FIELD,
"",
)
.is_ok());
assert!(
Aeat720Field::write_field(
&mut fields,
DetailRegister::REAL_STATE_REPRESENTATION_FIELD,
"",
)
.is_ok()
);

assert_eq!(fields[474..475], [b' ']);
}
Expand Down
Loading

0 comments on commit 6bd1681

Please sign in to comment.