[INFO] cloning repository https://github.com/LittleGuest/hairy-crabs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/LittleGuest/hairy-crabs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLittleGuest%2Fhairy-crabs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLittleGuest%2Fhairy-crabs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] eea5827fd249794795e0fae1d11da809a21fe172
[INFO] testing LittleGuest/hairy-crabs against beta-2022-04-10 for beta-1.61-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FLittleGuest%2Fhairy-crabs" "/workspace/builds/worker-16/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-16/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/LittleGuest/hairy-crabs on toolchain beta-2022-04-10
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/LittleGuest/hairy-crabs
[INFO] finished tweaking git repo https://github.com/LittleGuest/hairy-crabs
[INFO] tweaked toml for git repo https://github.com/LittleGuest/hairy-crabs written to /workspace/builds/worker-16/source/Cargo.toml
[INFO] crate git repo https://github.com/LittleGuest/hairy-crabs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2022-04-10" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] Blocking waiting for file lock on package cache
[INFO] [stderr] Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-16/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-16/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] b2c0be5470ffd3e1b650bbfd040b1f148c95c4d1d52c9a28c6101b17f9179ebb
[INFO] running `Command { std: "docker" "start" "-a" "b2c0be5470ffd3e1b650bbfd040b1f148c95c4d1d52c9a28c6101b17f9179ebb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "b2c0be5470ffd3e1b650bbfd040b1f148c95c4d1d52c9a28c6101b17f9179ebb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b2c0be5470ffd3e1b650bbfd040b1f148c95c4d1d52c9a28c6101b17f9179ebb", kill_on_drop: false }`
[INFO] [stdout] b2c0be5470ffd3e1b650bbfd040b1f148c95c4d1d52c9a28c6101b17f9179ebb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-16/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-16/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 4ed607fd00c9da91b1e0d0ad843c300f64347dde9422fc7c0418d30468c25c0d
[INFO] running `Command { std: "docker" "start" "-a" "4ed607fd00c9da91b1e0d0ad843c300f64347dde9422fc7c0418d30468c25c0d", kill_on_drop: false }`
[INFO] [stderr] Blocking waiting for file lock on package cache
[INFO] [stderr] Blocking waiting for file lock on package cache
[INFO] [stderr] Compiling proc-macro2 v1.0.33
[INFO] [stderr] Compiling syn v1.0.82
[INFO] [stderr] Compiling libc v0.2.108
[INFO] [stderr] Compiling serde_derive v1.0.132
[INFO] [stderr] Compiling serde v1.0.132
[INFO] [stderr] Compiling memchr v2.4.1
[INFO] [stderr] Compiling log v0.4.14
[INFO] [stderr] Compiling cc v1.0.72
[INFO] [stderr] Compiling libm v0.2.1
[INFO] [stderr] Compiling ryu v1.0.6
[INFO] [stderr] Compiling bytes v1.1.0
[INFO] [stderr] Compiling serde_json v1.0.72
[INFO] [stderr] Compiling crossbeam-utils v0.8.5
[INFO] [stderr] Compiling ppv-lite86 v0.2.15
[INFO] [stderr] Compiling futures-channel v0.3.18
[INFO] [stderr] Compiling futures-util v0.3.18
[INFO] [stderr] Compiling ucd-trie v0.1.3
[INFO] [stderr] Compiling slab v0.4.5
[INFO] [stderr] Compiling unicode-segmentation v1.8.0
[INFO] [stderr] Compiling pkg-config v0.3.22
[INFO] [stderr] Compiling crossbeam-queue v0.3.2
[INFO] [stderr] Compiling maplit v1.0.2
[INFO] [stderr] Compiling siphasher v0.3.7
[INFO] [stderr] Compiling crossbeam-epoch v0.9.5
[INFO] [stderr] Compiling autocfg v0.1.7
[INFO] [stderr] Compiling const_fn v0.4.8
[INFO] [stderr] Compiling minimal-lexical v0.2.1
[INFO] [stderr] Compiling subtle v2.4.1
[INFO] [stderr] Compiling bindgen v0.58.1
[INFO] [stderr] Compiling crc-catalog v1.1.1
[INFO] [stderr] Compiling unicode_categories v0.1.1
[INFO] [stderr] Compiling arrayvec v0.5.2
[INFO] [stderr] Compiling encoding_rs v0.8.29
[INFO] [stderr] Compiling rustc-hash v1.1.0
[INFO] [stderr] Compiling shlex v1.1.0
[INFO] [stderr] Compiling xml-rs v0.8.4
[INFO] [stderr] Compiling whoami v1.2.1
[INFO] [stderr] Compiling peeking_take_while v0.1.2
[INFO] [stderr] Compiling bit-vec v0.6.3
[INFO] [stderr] Compiling anyhow v1.0.51
[INFO] [stderr] Compiling unic-common v0.9.0
[INFO] [stderr] Compiling unic-char-range v0.9.0
[INFO] [stderr] Compiling ident_case v1.0.1
[INFO] [stderr] Compiling httpdate v1.0.2
[INFO] [stderr] Compiling linked-hash-map v0.5.4
[INFO] [stderr] Compiling if_chain v1.0.2
[INFO] [stderr] Compiling dtoa v0.4.8
[INFO] [stderr] Compiling deunicode v0.4.3
[INFO] [stderr] Compiling sha1 v0.6.0
[INFO] [stderr] Compiling humansize v1.1.1
[INFO] [stderr] Compiling lazy_static v1.4.0
[INFO] [stderr] Compiling ahash v0.7.6
[INFO] [stderr] Compiling num-traits v0.2.14
[INFO] [stderr] Compiling num-integer v0.1.44
[INFO] [stderr] Compiling instant v0.1.12
[INFO] [stderr] Compiling tokio v1.14.0
[INFO] [stderr] Compiling textwrap v0.11.0
[INFO] [stderr] Compiling tinyvec v1.5.1
[INFO] [stderr] Compiling uncased v0.9.6
[INFO] [stderr] Compiling memoffset v0.6.4
[INFO] [stderr] Compiling standback v0.2.17
[INFO] [stderr] Compiling num-iter v0.1.42
[INFO] [stderr] Compiling num-bigint v0.4.3
[INFO] [stderr] Compiling nom v5.1.2
[INFO] [stderr] Compiling num-bigint v0.3.3
[INFO] [stderr] Compiling nom v7.1.0
[INFO] [stderr] Compiling time v0.2.27
[INFO] [stderr] Compiling libloading v0.7.2
[INFO] [stderr] Compiling unicase v2.6.0
[INFO] [stderr] Compiling num-bigint v0.2.6
[INFO] [stderr] Compiling clang-sys v1.3.0
[INFO] [stderr] Compiling crc v2.1.0
[INFO] [stderr] Compiling unic-ucd-version v0.9.0
[INFO] [stderr] Compiling tracing-core v0.1.21
[INFO] [stderr] Compiling yaml-rust v0.4.5
[INFO] [stderr] Compiling slug v0.1.4
[INFO] [stderr] Compiling unic-char-property v0.9.0
[INFO] [stderr] Compiling pest v2.1.3
[INFO] [stderr] Compiling may_queue v0.1.8
[INFO] [stderr] Compiling may v0.3.19
[INFO] [stderr] Compiling block-buffer v0.9.0
[INFO] [stderr] Compiling heck v0.3.3
[INFO] [stderr] Compiling unic-ucd-segment v0.9.0
[INFO] [stderr] Compiling sha-1 v0.9.8
[INFO] [stderr] Compiling sha2 v0.9.8
[INFO] [stderr] Compiling http v0.2.5
[INFO] [stderr] Compiling num-bigint-dig v0.7.0
[INFO] [stderr] Compiling phf_shared v0.10.0
[INFO] [stderr] Compiling unicode-normalization v0.1.19
[INFO] [stderr] Compiling crossbeam-channel v0.5.1
[INFO] [stderr] Compiling phf v0.10.0
[INFO] [stderr] Compiling aho-corasick v0.7.18
[INFO] [stderr] Compiling bstr v0.2.17
[INFO] [stderr] Compiling os_str_bytes v6.0.0
[INFO] [stderr] Compiling unic-segment v0.9.0
[INFO] [stderr] Compiling ring v0.16.20
[INFO] [stderr] Compiling bzip2-sys v0.1.11+1.0.8
[INFO] [stderr] Compiling generator v0.7.0
[INFO] [stderr] Compiling quote v1.0.10
[INFO] [stderr] Compiling pest_meta v2.1.3
[INFO] [stderr] Compiling crossbeam-deque v0.8.1
[INFO] [stderr] Compiling mime_guess v2.0.3
[INFO] [stderr] Compiling crossbeam v0.8.1
[INFO] [stderr] Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr] Compiling idna v0.2.3
[INFO] [stderr] Compiling stringprep v0.1.2
[INFO] [stderr] Compiling regex v1.5.4
[INFO] [stderr] Compiling atoi v0.4.0
[INFO] [stderr] Compiling quick-xml v0.19.0
[INFO] [stderr] Compiling codepage v0.1.1
[INFO] [stderr] Compiling url v2.2.2
[INFO] [stderr] Compiling getrandom v0.2.3
[INFO] [stderr] Compiling num_cpus v1.13.0
[INFO] [stderr] Compiling time v0.1.43
[INFO] [stderr] Compiling parking_lot_core v0.8.5
[INFO] [stderr] Compiling atty v0.2.14
[INFO] [stderr] Compiling signal-hook-registry v1.4.0
[INFO] [stderr] Compiling flate2 v1.0.22
[INFO] [stderr] Compiling socket2 v0.4.2
[INFO] [stderr] Compiling which v3.1.1
[INFO] [stderr] Compiling nix v0.20.0
[INFO] [stderr] Compiling clap v2.34.0
[INFO] [stderr] Compiling bzip2 v0.4.3
[INFO] [stderr] Compiling rand_core v0.6.3
[INFO] [stderr] Compiling dashmap v4.0.2
[INFO] [stderr] Compiling parking_lot v0.11.2
[INFO] [stderr] Compiling rand_chacha v0.3.1
[INFO] [stderr] Compiling hashbrown v0.11.2
[INFO] [stderr] Compiling cexpr v0.4.0
[INFO] [stderr] Compiling futures-intrusive v0.4.0
[INFO] [stderr] Compiling headers-core v0.2.0
[INFO] [stderr] Compiling http-body v0.4.4
[INFO] [stderr] Compiling pem v0.8.3
[INFO] [stderr] Compiling parse-zoneinfo v0.3.0
[INFO] [stderr] Compiling headers v0.3.5
[INFO] [stderr] Compiling rand v0.8.4
[INFO] [stderr] Compiling indexmap v1.7.0
[INFO] [stderr] Compiling hashlink v0.7.0
[INFO] [stderr] Compiling phf_generator v0.10.0
[INFO] [stderr] Compiling phf_codegen v0.10.0
[INFO] [stderr] Compiling chrono-tz-build v0.0.2
[INFO] [stderr] Compiling chrono-tz v0.6.1
[INFO] [stderr] Compiling webpki v0.21.4
[INFO] [stderr] Compiling sct v0.6.1
[INFO] [stderr] Compiling webpki-roots v0.21.1
[INFO] [stderr] Compiling proc-macro-error v1.0.4
[INFO] [stderr] Compiling synstructure v0.12.6
[INFO] [stderr] Compiling pest_generator v2.1.3
[INFO] [stderr] Compiling darling_core v0.13.1
[INFO] [stderr] Compiling validator_types v0.14.0
[INFO] [stderr] Compiling thiserror-impl v1.0.30
[INFO] [stderr] Compiling tokio-macros v1.6.0
[INFO] [stderr] Compiling futures-macro v0.3.18
[INFO] [stderr] Compiling structopt-derive v0.4.18
[INFO] [stderr] Compiling pest_derive v2.1.0
[INFO] [stderr] Compiling zeroize_derive v1.2.2
[INFO] [stderr] Compiling time-macros-impl v0.1.2
[INFO] [stderr] Compiling async-trait v0.1.51
[INFO] [stderr] Compiling tracing-attributes v0.1.18
[INFO] [stderr] Compiling validator_derive v0.14.0
[INFO] [stderr] Compiling clap_derive v3.0.0-rc.4
[INFO] [stderr] Compiling darling_macro v0.13.1
[INFO] [stderr] Compiling zeroize v1.3.0
[INFO] [stderr] Compiling time-macros v0.1.1
[INFO] [stderr] Compiling darling v0.13.1
[INFO] [stderr] Compiling thiserror v1.0.30
[INFO] [stderr] Compiling structopt v0.3.25
[INFO] [stderr] Compiling tracing v0.1.29
[INFO] [stderr] Compiling zip v0.5.13
[INFO] [stderr] Compiling crab-excel-derive v0.1.0 (/opt/rustwide/workdir/crab-excel-derive)
[INFO] [stderr] Compiling clap v3.0.0-rc.4
[INFO] [stderr] Compiling simple_excel_writer v0.1.9
[INFO] [stderr] Compiling futures-executor v0.3.18
[INFO] [stderr] Compiling futures v0.3.18
[INFO] [stderr] Compiling chrono v0.4.19
[INFO] [stderr] Compiling uuid v0.8.2
[INFO] [stderr] Compiling either v1.6.1
[INFO] [stderr] Compiling serde_bytes v0.11.5
[INFO] [stderr] Compiling bigdecimal v0.2.2
[INFO] [stderr] Compiling rust_decimal v1.18.0
[INFO] [stderr] Compiling ipnetwork v0.17.0
[INFO] [stderr] Compiling toml v0.5.8
[INFO] [stderr] Compiling serde_yaml v0.8.23
[INFO] [stderr] Compiling serde_urlencoded v0.7.0
[INFO] [stderr] Compiling mio v0.7.14
[INFO] [stderr] Compiling rustls v0.19.1
[INFO] [stderr] Compiling env_logger v0.8.4
[INFO] [stderr] Compiling globset v0.4.8
[INFO] [stderr] Compiling want v0.3.0
[INFO] [stderr] Compiling calamine v0.18.0
[INFO] [stderr] Compiling itertools v0.10.1
[INFO] [stderr] Compiling ignore v0.4.18
[INFO] [stderr] Compiling simple_asn1 v0.5.4
[INFO] [stderr] Compiling simple_asn1 v0.4.1
[INFO] [stderr] Compiling html_parser v0.6.2
[INFO] [stderr] Compiling rexpr v1.0.7
[INFO] [stderr] Compiling rbson v2.0.3
[INFO] [stderr] Compiling validator v0.14.0
[INFO] [stderr] Compiling proc-macro-crate v1.1.0
[INFO] [stderr] Compiling rsa v0.4.1
[INFO] [stderr] Compiling jsonwebtoken v7.2.0
[INFO] [stderr] Compiling globwalk v0.8.1
[INFO] [stderr] Compiling py_sql v1.0.1
[INFO] [stderr] Compiling fast_log v1.4.9
[INFO] [stderr] Compiling poem-derive v1.2.4
[INFO] [stderr] Compiling sqlformat v0.1.8
[INFO] [stderr] Compiling rbatis_sql_macro v3.0.7
[INFO] [stderr] Compiling rbatis-macro-driver v3.0.5
[INFO] [stderr] Compiling tokio-util v0.6.9
[INFO] [stderr] Compiling tokio-rustls v0.22.0
[INFO] [stderr] Compiling tokio-stream v0.1.8
[INFO] [stderr] Compiling tera v1.15.0
[INFO] [stderr] Compiling sqlx-rt v0.5.9
[INFO] [stderr] Compiling sqlx-core v0.5.9
[INFO] [stderr] Compiling combine v4.6.2
[INFO] [stderr] Compiling h2 v0.3.7
[INFO] [stderr] Compiling libxlsxwriter-sys v1.1.1
[INFO] [stderr] Compiling rbatis_sql v3.0.13
[INFO] [stderr] Compiling hyper v0.14.15
[INFO] [stderr] Compiling rbatis-core v3.0.18
[INFO] [stderr] Compiling rbatis v3.0.27
[INFO] [stderr] Compiling redis v0.21.4
[INFO] [stderr] Compiling crab-system v0.1.0 (/opt/rustwide/workdir/crab-system)
[INFO] [stderr] Compiling generator v0.1.0 (/opt/rustwide/workdir/generator)
[INFO] [stderr] Compiling poem v1.2.4
[INFO] [stdout] ............gen macro py_sql :
[INFO] [stdout] pub async fn tables(table_names : & str) -> rbatis :: core :: Result < Vec <
[INFO] [stdout] Table > >
[INFO] [stdout] {
[INFO] [stdout] let mut sql =
[INFO] [stdout] "
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] TABLE_TYPE,
[INFO] [stdout] `ENGINE`,
[INFO] [stdout] VERSION,
[INFO] [stdout] ROW_FORMAT,
[INFO] [stdout] TABLE_ROWS,
[INFO] [stdout] AVG_ROW_LENGTH,
[INFO] [stdout] DATA_LENGTH,
[INFO] [stdout] MAX_DATA_LENGTH,
[INFO] [stdout] INDEX_LENGTH,
[INFO] [stdout] DATA_FREE,
[INFO] [stdout] AUTO_INCREMENT,
[INFO] [stdout] CREATE_TIME,
[INFO] [stdout] UPDATE_TIME,
[INFO] [stdout] CHECK_TIME,
[INFO] [stdout] TABLE_COLLATION,
[INFO] [stdout] `CHECKSUM`,
[INFO] [stdout] CREATE_OPTIONS,
[INFO] [stdout] TABLE_COMMENT
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.`TABLES`
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] CREATE_TIME
[INFO] [stdout] ".to_string()
[INFO] [stdout] ; let mut rb_arg_map = rbson :: Document :: new() ;
[INFO] [stdout] rb_arg_map.insert("table_names".to_string(), rbson ::
[INFO] [stdout] to_bson(table_names).unwrap_or_default()) ; {} use rbatis :: executor ::
[INFO] [stdout] { RbatisRef } ; let driver_type = RB.get_rbatis().driver_type() ? ; use
[INFO] [stdout] rbatis :: { rbatis_sql, AsSqlTag } ; let sql_tag = driver_type.sql_tag() ;
[INFO] [stdout] #[rb_py("
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] TABLE_TYPE,
[INFO] [stdout] `ENGINE`,
[INFO] [stdout] VERSION,
[INFO] [stdout] ROW_FORMAT,
[INFO] [stdout] TABLE_ROWS,
[INFO] [stdout] AVG_ROW_LENGTH,
[INFO] [stdout] DATA_LENGTH,
[INFO] [stdout] MAX_DATA_LENGTH,
[INFO] [stdout] INDEX_LENGTH,
[INFO] [stdout] DATA_FREE,
[INFO] [stdout] AUTO_INCREMENT,
[INFO] [stdout] CREATE_TIME,
[INFO] [stdout] UPDATE_TIME,
[INFO] [stdout] CHECK_TIME,
[INFO] [stdout] TABLE_COLLATION,
[INFO] [stdout] `CHECKSUM`,
[INFO] [stdout] CREATE_OPTIONS,
[INFO] [stdout] TABLE_COMMENT
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.`TABLES`
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] CREATE_TIME
[INFO] [stdout] ")]
[INFO] [stdout] pub fn tables(arg : & rbson :: Bson, _tag : char) {} let(mut sql, rb_args)
[INFO] [stdout] = tables(& rbson :: Bson :: Document(rb_arg_map), sql_tag) ;
[INFO] [stdout] driver_type.do_replace_tag(& mut sql) ; use rbatis :: executor ::
[INFO] [stdout] { Executor, ExecutorMut } ; RB.fetch(& sql, rb_args).await
[INFO] [stdout] }
[INFO] [stdout] ............gen macro py_sql end............
[INFO] [stdout] py_sql:
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] TABLE_TYPE,
[INFO] [stdout] `ENGINE`,
[INFO] [stdout] VERSION,
[INFO] [stdout] ROW_FORMAT,
[INFO] [stdout] TABLE_ROWS,
[INFO] [stdout] AVG_ROW_LENGTH,
[INFO] [stdout] DATA_LENGTH,
[INFO] [stdout] MAX_DATA_LENGTH,
[INFO] [stdout] INDEX_LENGTH,
[INFO] [stdout] DATA_FREE,
[INFO] [stdout] AUTO_INCREMENT,
[INFO] [stdout] CREATE_TIME,
[INFO] [stdout] UPDATE_TIME,
[INFO] [stdout] CHECK_TIME,
[INFO] [stdout] TABLE_COLLATION,
[INFO] [stdout] `CHECKSUM`,
[INFO] [stdout] CREATE_OPTIONS,
[INFO] [stdout] TABLE_COMMENT
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.`TABLES`
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] CREATE_TIME
[INFO] [stdout]
[INFO] [stdout] html: SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, `ENGINE`, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH, DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT, CREATE_TIME, UPDATE_TIME, CHECK_TIME, TABLE_COLLATION, `CHECKSUM`, CREATE_OPTIONS, TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = ( SELECT DATABASE ()) AND FIND_IN_SET(TABLE_NAME, #{table_names}) ORDER BY CREATE_TIME
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 用户信息表
[INFO] [stdout] #[derive(Default, Clone, Debug, Serialize, Deserialize, Validate)]
[INFO] [stdout] #[serde(rename_all(serialize = "camelCase"))] pub struct SysUser
[INFO] [stdout] {
[INFO] [stdout] /// 用户ID
[INFO] [stdout] #[validate(length(max = 64))] pub id : Option < String >, /// 部门ID
[INFO] [stdout] #[validate(length(max = 50))] pub dept_id : Option < String >, /// 姓名
[INFO] [stdout] #[validate(length(max = 50))] pub name : Option < String >, /// 英文名
[INFO] [stdout] #[validate(length(max = 50))] pub name_en : Option < String >,
[INFO] [stdout] /// 用户编号
[INFO] [stdout] #[validate(length(max = 50))] pub no : Option < String >, /// 登陆名称
[INFO] [stdout] #[validate(length(max = 30))] pub user_name : Option < String >,
[INFO] [stdout] /// 别称
[INFO] [stdout] #[validate(length(max = 30))] pub nick_name : Option < String >,
[INFO] [stdout] /// 前后台类型标识 0:后台用户 1:前台用户
[INFO] [stdout] #[validate(length(max = 2))] pub user_type : Option < String >,
[INFO] [stdout] /// 用户邮箱
[INFO] [stdout] #[validate(length(max = 50))] pub email : Option < String >,
[INFO] [stdout] /// 手机号码
[INFO] [stdout] #[validate(length(max = 11))] pub phonenumber : Option < String >,
[INFO] [stdout] /// 用户性别(0男 1女 2未知)
[INFO] [stdout] #[validate(length(max = 1))] pub sex : Option < String >, /// 头像地址
[INFO] [stdout] #[validate(length(max = 100))] pub avatar : Option < String >, /// 密码
[INFO] [stdout] #[validate(length(max = 100))] pub password : Option < String >,
[INFO] [stdout] /// 生日
[INFO] [stdout] pub birthday : Option < rbatis :: DateNative >, /// 民族
[INFO] [stdout] #[validate(length(max = 100))] pub nation : Option < String >, /// 籍贯
[INFO] [stdout] #[validate(length(max = 100))] pub birth_address : Option < String >,
[INFO] [stdout] /// 政治面貌
[INFO] [stdout] #[validate(length(max = 50))] pub polity : Option < String >, /// 职称
[INFO] [stdout] #[validate(length(max = 100))] pub title : Option < String >,
[INFO] [stdout] /// 办公电话
[INFO] [stdout] #[validate(length(max = 50))] pub office_tel : Option < String >,
[INFO] [stdout] /// 传真号
[INFO] [stdout] #[validate(length(max = 50))] pub fax : Option < String >,
[INFO] [stdout] /// 工作地点
[INFO] [stdout] #[validate(length(max = 100))] pub work_space : Option < String >,
[INFO] [stdout] /// 排序号
[INFO] [stdout] pub sort : Option < i32 >, /// 用户姓名全拼和简拼
[INFO] [stdout] #[validate(length(max = 500))] pub user_pinyin : Option < String >,
[INFO] [stdout] /// 帐号状态(0正常 1停用)
[INFO] [stdout] #[validate(length(max = 1))] pub status : Option < String >,
[INFO] [stdout] /// 删除标志(0代表存在 2代表删除)
[INFO] [stdout] #[validate(length(max = 1))] pub del_flag : Option < String >,
[INFO] [stdout] /// 最后登录IP
[INFO] [stdout] #[validate(length(max = 128))] pub login_ip : Option < String >,
[INFO] [stdout] /// 最后登录时间
[INFO] [stdout] pub login_date : Option < rbatis :: DateTimeNative >, /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建部门
[INFO] [stdout] #[validate(length(max = 64))] pub create_dept : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 更新IP
[INFO] [stdout] #[validate(length(max = 128))] pub update_ip : Option < String >,
[INFO] [stdout] /// 备注
[INFO] [stdout] #[validate(length(max = 500))] pub remark : Option < String >, /// 版本
[INFO] [stdout] pub version : Option < i32 >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for SysUser
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.id).unwrap_or_default() ; }
[INFO] [stdout] "dept_id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.dept_id).unwrap_or_default() ; }
[INFO] [stdout] "name" =>
[INFO] [stdout] { return rbson :: to_bson(& self.name).unwrap_or_default() ; }
[INFO] [stdout] "name_en" =>
[INFO] [stdout] { return rbson :: to_bson(& self.name_en).unwrap_or_default() ; }
[INFO] [stdout] "no" =>
[INFO] [stdout] { return rbson :: to_bson(& self.no).unwrap_or_default() ; }
[INFO] [stdout] "user_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.user_name).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "nick_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.nick_name).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "user_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.user_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "email" =>
[INFO] [stdout] { return rbson :: to_bson(& self.email).unwrap_or_default() ; }
[INFO] [stdout] "phonenumber" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.phonenumber).unwrap_or_default() ;
[INFO] [stdout] } "sex" =>
[INFO] [stdout] { return rbson :: to_bson(& self.sex).unwrap_or_default() ; }
[INFO] [stdout] "avatar" =>
[INFO] [stdout] { return rbson :: to_bson(& self.avatar).unwrap_or_default() ; }
[INFO] [stdout] "password" =>
[INFO] [stdout] { return rbson :: to_bson(& self.password).unwrap_or_default() ; }
[INFO] [stdout] "birthday" =>
[INFO] [stdout] { return rbson :: to_bson(& self.birthday).unwrap_or_default() ; }
[INFO] [stdout] "nation" =>
[INFO] [stdout] { return rbson :: to_bson(& self.nation).unwrap_or_default() ; }
[INFO] [stdout] "birth_address" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.birth_address).unwrap_or_default() ;
[INFO] [stdout] } "polity" =>
[INFO] [stdout] { return rbson :: to_bson(& self.polity).unwrap_or_default() ; }
[INFO] [stdout] "title" =>
[INFO] [stdout] { return rbson :: to_bson(& self.title).unwrap_or_default() ; }
[INFO] [stdout] "office_tel" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.office_tel).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "fax" =>
[INFO] [stdout] { return rbson :: to_bson(& self.fax).unwrap_or_default() ; }
[INFO] [stdout] "work_space" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.work_space).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "sort" =>
[INFO] [stdout] { return rbson :: to_bson(& self.sort).unwrap_or_default() ; }
[INFO] [stdout] "user_pinyin" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.user_pinyin).unwrap_or_default() ;
[INFO] [stdout] } "status" =>
[INFO] [stdout] { return rbson :: to_bson(& self.status).unwrap_or_default() ; }
[INFO] [stdout] "del_flag" =>
[INFO] [stdout] { return rbson :: to_bson(& self.del_flag).unwrap_or_default() ; }
[INFO] [stdout] "login_ip" =>
[INFO] [stdout] { return rbson :: to_bson(& self.login_ip).unwrap_or_default() ; }
[INFO] [stdout] "login_date" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.login_date).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_dept" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_dept).unwrap_or_default() ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "update_ip" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_ip).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; }
[INFO] [stdout] "version" =>
[INFO] [stdout] { return rbson :: to_bson(& self.version).unwrap_or_default() ; }
[INFO] [stdout] _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "sys_user".to_string() } fn table_columns()
[INFO] [stdout] -> String
[INFO] [stdout] {
[INFO] [stdout] "id,dept_id,name,name_en,no,user_name,nick_name,user_type,email,phonenumber,sex,avatar,password,birthday,nation,birth_address,polity,title,office_tel,fax,work_space,sort,user_pinyin,status,del_flag,login_ip,login_date,create_by,create_dept,create_time,update_by,update_time,update_ip,remark,version".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] load html:[
[INFO] [stdout] {
[INFO] [stdout] tag: "update",
[INFO] [stdout] attributes: {
[INFO] [stdout] "id": "tables",
[INFO] [stdout] },
[INFO] [stdout] childs: [
[INFO] [stdout] {
[INFO] [stdout] data: "SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, `ENGINE`, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH, DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT, CREATE_TIME, UPDATE_TIME, CHECK_TIME, TABLE_COLLATION, `CHECKSUM`, CREATE_OPTIONS, TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = ( SELECT DATABASE ())",
[INFO] [stdout] },
[INFO] [stdout] {
[INFO] [stdout] tag: "if",
[INFO] [stdout] attributes: {
[INFO] [stdout] "test": "table_names != ''",
[INFO] [stdout] },
[INFO] [stdout] childs: [
[INFO] [stdout] {
[INFO] [stdout] data: "AND FIND_IN_SET(TABLE_NAME, #{table_names})",
[INFO] [stdout] },
[INFO] [stdout] ],
[INFO] [stdout] },
[INFO] [stdout] {
[INFO] [stdout] data: "ORDER BY CREATE_TIME",
[INFO] [stdout] },
[INFO] [stdout] ],
[INFO] [stdout] },
[INFO] [stdout] ]
[INFO] [stdout] ............gen rb_pysql_fn:
[INFO] [stdout] use rbatis_sql :: ops :: * ; pub fn tables(arg : & rbson :: Bson, _tag : char)
[INFO] [stdout] -> (String, Vec < rbson :: Bson >)
[INFO] [stdout] {
[INFO] [stdout] use rbatis_sql :: ops :: AsProxy ; let mut sql = String ::
[INFO] [stdout] with_capacity(1000) ; let mut args = Vec :: with_capacity(20) ;
[INFO] [stdout] sql.push_str("SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, `ENGINE`, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH, DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT, CREATE_TIME, UPDATE_TIME, CHECK_TIME, TABLE_COLLATION, `CHECKSUM`, CREATE_OPTIONS, TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = ( SELECT DATABASE ())")
[INFO] [stdout] ; let dGFibGVfbmFtZXMgIT0gJyc_ =
[INFO] [stdout] { let result = { (arg.index("table_names")).op_ne(& "") } ; result } ; if
[INFO] [stdout] dGFibGVfbmFtZXMgIT0gJyc_
[INFO] [stdout] {
[INFO] [stdout] sql.push_str(" ") ; let c2VsZWN0OnRhYmxlX25hbWVz =
[INFO] [stdout] { let result = { arg.index("table_names") } ; result } ;
[INFO] [stdout] args.push(rbson :: bson! (c2VsZWN0OnRhYmxlX25hbWVz)) ;
[INFO] [stdout] sql.push_str("AND FIND_IN_SET(TABLE_NAME, ?)") ; sql.push_str(" ") ;
[INFO] [stdout] } sql.push_str("ORDER BY CREATE_TIME") ; rbatis_sql :: sql_index!
[INFO] [stdout] (sql, _tag) ; return(sql, args) ;
[INFO] [stdout] }
[INFO] [stdout] ............gen rb_pysql_fn end............
[INFO] [stdout] ............gen macro py_sql :
[INFO] [stdout] pub async fn tables_columns(table_names : & str) -> rbatis :: core :: Result <
[INFO] [stdout] Vec < TableColumn > >
[INFO] [stdout] {
[INFO] [stdout] let mut sql =
[INFO] [stdout] "
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] COLUMN_NAME,
[INFO] [stdout] ORDINAL_POSITION,
[INFO] [stdout] COLUMN_DEFAULT,
[INFO] [stdout] IS_NULLABLE,
[INFO] [stdout] DATA_TYPE,
[INFO] [stdout] CHARACTER_MAXIMUM_LENGTH,
[INFO] [stdout] CHARACTER_OCTET_LENGTH,
[INFO] [stdout] NUMERIC_PRECISION,
[INFO] [stdout] NUMERIC_SCALE,
[INFO] [stdout] DATETIME_PRECISION,
[INFO] [stdout] CHARACTER_SET_NAME,
[INFO] [stdout] COLLATION_NAME,
[INFO] [stdout] COLUMN_TYPE,
[INFO] [stdout] COLUMN_KEY,
[INFO] [stdout] EXTRA,
[INFO] [stdout] `PRIVILEGES`,
[INFO] [stdout] COLUMN_COMMENT,
[INFO] [stdout] GENERATION_EXPRESSION,
[INFO] [stdout] SRS_ID
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.COLUMNS
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] ORDINAL_POSITION
[INFO] [stdout] ".to_string()
[INFO] [stdout] ; let mut rb_arg_map = rbson :: Document :: new() ;
[INFO] [stdout] rb_arg_map.insert("table_names".to_string(), rbson ::
[INFO] [stdout] to_bson(table_names).unwrap_or_default()) ; {} use rbatis :: executor ::
[INFO] [stdout] { RbatisRef } ; let driver_type = RB.get_rbatis().driver_type() ? ; use
[INFO] [stdout] rbatis :: { rbatis_sql, AsSqlTag } ; let sql_tag = driver_type.sql_tag() ;
[INFO] [stdout] #[rb_py("
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] COLUMN_NAME,
[INFO] [stdout] ORDINAL_POSITION,
[INFO] [stdout] COLUMN_DEFAULT,
[INFO] [stdout] IS_NULLABLE,
[INFO] [stdout] DATA_TYPE,
[INFO] [stdout] CHARACTER_MAXIMUM_LENGTH,
[INFO] [stdout] CHARACTER_OCTET_LENGTH,
[INFO] [stdout] NUMERIC_PRECISION,
[INFO] [stdout] NUMERIC_SCALE,
[INFO] [stdout] DATETIME_PRECISION,
[INFO] [stdout] CHARACTER_SET_NAME,
[INFO] [stdout] COLLATION_NAME,
[INFO] [stdout] COLUMN_TYPE,
[INFO] [stdout] COLUMN_KEY,
[INFO] [stdout] EXTRA,
[INFO] [stdout] `PRIVILEGES`,
[INFO] [stdout] COLUMN_COMMENT,
[INFO] [stdout] GENERATION_EXPRESSION,
[INFO] [stdout] SRS_ID
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.COLUMNS
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] ORDINAL_POSITION
[INFO] [stdout] ")]
[INFO] [stdout] pub fn tables_columns(arg : & rbson :: Bson, _tag : char) {}
[INFO] [stdout] let(mut sql, rb_args) =
[INFO] [stdout] tables_columns(& rbson :: Bson :: Document(rb_arg_map), sql_tag) ;
[INFO] [stdout] driver_type.do_replace_tag(& mut sql) ; use rbatis :: executor ::
[INFO] [stdout] { Executor, ExecutorMut } ; RB.fetch(& sql, rb_args).await
[INFO] [stdout] }
[INFO] [stdout] ............gen macro py_sql end............
[INFO] [stdout] py_sql:
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] COLUMN_NAME,
[INFO] [stdout] ORDINAL_POSITION,
[INFO] [stdout] COLUMN_DEFAULT,
[INFO] [stdout] IS_NULLABLE,
[INFO] [stdout] DATA_TYPE,
[INFO] [stdout] CHARACTER_MAXIMUM_LENGTH,
[INFO] [stdout] CHARACTER_OCTET_LENGTH,
[INFO] [stdout] NUMERIC_PRECISION,
[INFO] [stdout] NUMERIC_SCALE,
[INFO] [stdout] DATETIME_PRECISION,
[INFO] [stdout] CHARACTER_SET_NAME,
[INFO] [stdout] COLLATION_NAME,
[INFO] [stdout] COLUMN_TYPE,
[INFO] [stdout] COLUMN_KEY,
[INFO] [stdout] EXTRA,
[INFO] [stdout] `PRIVILEGES`,
[INFO] [stdout] COLUMN_COMMENT,
[INFO] [stdout] GENERATION_EXPRESSION,
[INFO] [stdout] SRS_ID
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.COLUMNS
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] ORDINAL_POSITION
[INFO] [stdout]
[INFO] [stdout] html: SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE, DATETIME_PRECISION, CHARACTER_SET_NAME, COLLATION_NAME, COLUMN_TYPE, COLUMN_KEY, EXTRA, `PRIVILEGES`, COLUMN_COMMENT, GENERATION_EXPRESSION, SRS_ID FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ( SELECT DATABASE ()) AND FIND_IN_SET(TABLE_NAME, #{table_names}) ORDER BY ORDINAL_POSITION
[INFO] [stdout] load html:[
[INFO] [stdout] {
[INFO] [stdout] tag: "update",
[INFO] [stdout] attributes: {
[INFO] [stdout] "id": "tables_columns",
[INFO] [stdout] },
[INFO] [stdout] childs: [
[INFO] [stdout] {
[INFO] [stdout] data: "SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE, DATETIME_PRECISION, CHARACTER_SET_NAME, COLLATION_NAME, COLUMN_TYPE, COLUMN_KEY, EXTRA, `PRIVILEGES`, COLUMN_COMMENT, GENERATION_EXPRESSION, SRS_ID FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ( SELECT DATABASE ())",
[INFO] [stdout] },
[INFO] [stdout] {
[INFO] [stdout] tag: "if",
[INFO] [stdout] attributes: {
[INFO] [stdout] "test": "table_names != ''",
[INFO] [stdout] },
[INFO] [stdout] childs: [
[INFO] [stdout] {
[INFO] [stdout] data: "AND FIND_IN_SET(TABLE_NAME, #{table_names})",
[INFO] [stdout] },
[INFO] [stdout] ],
[INFO] [stdout] },
[INFO] [stdout] {
[INFO] [stdout] data: "ORDER BY ORDINAL_POSITION",
[INFO] [stdout] },
[INFO] [stdout] ],
[INFO] [stdout] },
[INFO] [stdout] ]
[INFO] [stdout] ............gen rb_pysql_fn:
[INFO] [stdout] use rbatis_sql :: ops :: * ; pub fn
[INFO] [stdout] tables_columns(arg : & rbson :: Bson, _tag : char) ->
[INFO] [stdout] (String, Vec < rbson :: Bson >)
[INFO] [stdout] {
[INFO] [stdout] use rbatis_sql :: ops :: AsProxy ; let mut sql = String ::
[INFO] [stdout] with_capacity(1000) ; let mut args = Vec :: with_capacity(20) ;
[INFO] [stdout] sql.push_str("SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE, DATETIME_PRECISION, CHARACTER_SET_NAME, COLLATION_NAME, COLUMN_TYPE, COLUMN_KEY, EXTRA, `PRIVILEGES`, COLUMN_COMMENT, GENERATION_EXPRESSION, SRS_ID FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ( SELECT DATABASE ())")
[INFO] [stdout] ; let dGFibGVfbmFtZXMgIT0gJyc_ =
[INFO] [stdout] { let result = { (arg.index("table_names")).op_ne(& "") } ; result } ; if
[INFO] [stdout] dGFibGVfbmFtZXMgIT0gJyc_
[INFO] [stdout] {
[INFO] [stdout] sql.push_str(" ") ; let c2VsZWN0OnRhYmxlX25hbWVz =
[INFO] [stdout] { let result = { arg.index("table_names") } ; result } ;
[INFO] [stdout] args.push(rbson :: bson! (c2VsZWN0OnRhYmxlX25hbWVz)) ;
[INFO] [stdout] sql.push_str("AND FIND_IN_SET(TABLE_NAME, ?)") ; sql.push_str(" ") ;
[INFO] [stdout] } sql.push_str("ORDER BY ORDINAL_POSITION") ; rbatis_sql :: sql_index!
[INFO] [stdout] (sql, _tag) ; return(sql, args) ;
[INFO] [stdout] }
[INFO] [stdout] ............gen rb_pysql_fn end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 参数配置表
[INFO] [stdout] #[derive(Default, Clone, Debug, Serialize, Deserialize, Validate)]
[INFO] [stdout] #[serde(rename_all(serialize = "camelCase"))] pub struct SysConfig
[INFO] [stdout] {
[INFO] [stdout] /// 参数名称
[INFO] [stdout] #[validate(length(max = 100))] pub config_name : Option < String >,
[INFO] [stdout] /// 参数键名
[INFO] [stdout] #[validate(length(max = 100))] pub config_key : Option < String >,
[INFO] [stdout] /// 参数键值
[INFO] [stdout] #[validate(length(max = 500))] pub config_value : Option < String >,
[INFO] [stdout] /// 系统内置(Y是 N否)
[INFO] [stdout] #[validate(length(max = 1))] pub config_type : Option < String >,
[INFO] [stdout] /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 备注
[INFO] [stdout] #[validate(length(max = 500))] pub remark : Option < String >,
[INFO] [stdout] /// 岗位ID
[INFO] [stdout] #[validate(length(max = 64))] pub id : Option < String >, /// 版本
[INFO] [stdout] pub version : Option < i32 >,
[INFO] [stdout] /// 删除标志(0代表存在 1代表删除)
[INFO] [stdout] #[validate(length(max = 1))] pub del_flag : Option < String >,
[INFO] [stdout] /// 更新IP
[INFO] [stdout] #[validate(length(max = 128))] pub update_ip : Option < String >,
[INFO] [stdout] /// 创建部门
[INFO] [stdout] #[validate(length(max = 64))] pub create_dept : Option < String >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for SysConfig
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "config_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.config_name).unwrap_or_default() ;
[INFO] [stdout] } "config_key" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.config_key).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "config_value" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.config_value).unwrap_or_default() ;
[INFO] [stdout] } "config_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.config_type).unwrap_or_default() ;
[INFO] [stdout] } "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; }
[INFO] [stdout] "id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.id).unwrap_or_default() ; }
[INFO] [stdout] "version" =>
[INFO] [stdout] { return rbson :: to_bson(& self.version).unwrap_or_default() ; }
[INFO] [stdout] "del_flag" =>
[INFO] [stdout] { return rbson :: to_bson(& self.del_flag).unwrap_or_default() ; }
[INFO] [stdout] "update_ip" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_ip).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_dept" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_dept).unwrap_or_default() ;
[INFO] [stdout] } _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "sys_config".to_string() } fn
[INFO] [stdout] table_columns() -> String
[INFO] [stdout] {
[INFO] [stdout] "config_name,config_key,config_value,config_type,create_by,create_time,update_by,update_time,remark,id,version,del_flag,update_ip,create_dept".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 通知公告表
[INFO] [stdout] #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize,
[INFO] [stdout] Validate)] #[serde(rename_all(serialize = "camelCase"))] pub struct SysNotice
[INFO] [stdout] {
[INFO] [stdout] /// id
[INFO] [stdout] #[validate(length(max = 64))] pub id : Option < String >, /// 公告标题
[INFO] [stdout] #[validate(length(max = 50))] pub notice_title : Option < String >,
[INFO] [stdout] /// 公告类型(1通知 2公告)
[INFO] [stdout] #[validate(length(max = 1))] pub notice_type : Option < String >,
[INFO] [stdout] /// 公告内容
[INFO] [stdout] pub notice_content : Option < Vec < u8 >>, /// 公告内容HTML
[INFO] [stdout] pub notice_content_html : Option < Vec < u8 >>,
[INFO] [stdout] /// 公告状态(0正常 1关闭)
[INFO] [stdout] #[validate(length(max = 1))] pub status : Option < String >, /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 备注
[INFO] [stdout] #[validate(length(max = 255))] pub remark : Option < String >, /// 版本
[INFO] [stdout] pub version : Option < i32 >,
[INFO] [stdout] /// 删除标志(0代表存在 1代表删除)
[INFO] [stdout] #[validate(length(max = 1))] pub del_flag : Option < String >,
[INFO] [stdout] /// 更新IP
[INFO] [stdout] #[validate(length(max = 128))] pub update_ip : Option < String >,
[INFO] [stdout] /// 创建部门
[INFO] [stdout] #[validate(length(max = 64))] pub create_dept : Option < String >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for SysNotice
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.id).unwrap_or_default() ; }
[INFO] [stdout] "notice_title" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.notice_title).unwrap_or_default() ;
[INFO] [stdout] } "notice_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.notice_type).unwrap_or_default() ;
[INFO] [stdout] } "notice_content" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.notice_content).unwrap_or_default() ;
[INFO] [stdout] } "notice_content_html" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.notice_content_html).unwrap_or_default() ;
[INFO] [stdout] } "status" =>
[INFO] [stdout] { return rbson :: to_bson(& self.status).unwrap_or_default() ; }
[INFO] [stdout] "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; }
[INFO] [stdout] "version" =>
[INFO] [stdout] { return rbson :: to_bson(& self.version).unwrap_or_default() ; }
[INFO] [stdout] "del_flag" =>
[INFO] [stdout] { return rbson :: to_bson(& self.del_flag).unwrap_or_default() ; }
[INFO] [stdout] "update_ip" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_ip).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_dept" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_dept).unwrap_or_default() ;
[INFO] [stdout] } _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "sys_notice".to_string() } fn
[INFO] [stdout] table_columns() -> String
[INFO] [stdout] {
[INFO] [stdout] "id,notice_title,notice_type,notice_content,notice_content_html,status,create_by,create_time,update_by,update_time,remark,version,del_flag,update_ip,create_dept".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] ///
[INFO] [stdout] #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Hash, Deserialize,
[INFO] [stdout] Validate)] #[serde(rename_all(serialize = "camelCase"))] pub struct SysMenu
[INFO] [stdout] {
[INFO] [stdout] /// ID
[INFO] [stdout] #[validate(length(max = 64))] pub id : Option < String >, /// 菜单编码
[INFO] [stdout] #[validate(length(max = 500))] pub menu_code : Option < String >,
[INFO] [stdout] /// 菜单名称
[INFO] [stdout] #[validate(length(max = 50))] pub menu_name : Option < String >,
[INFO] [stdout] /// 父菜单ID
[INFO] [stdout] #[validate(length(max = 64))] pub parent_id : Option < String >,
[INFO] [stdout] /// 显示顺序
[INFO] [stdout] pub sort : Option < i32 >, /// 路由地址
[INFO] [stdout] #[validate(length(max = 200))] pub path : Option < String >,
[INFO] [stdout] /// 组件路径
[INFO] [stdout] #[validate(length(max = 255))] pub component : Option < String >,
[INFO] [stdout] /// 是否为外链(0是 1否)
[INFO] [stdout] pub is_frame : Option < i32 >, /// 是否缓存(0缓存 1不缓存)
[INFO] [stdout] pub is_cache : Option < i32 >,
[INFO] [stdout] /// 菜单类型(M目录 C菜单 F按钮)
[INFO] [stdout] #[validate(length(max = 1))] pub menu_type : Option < String >,
[INFO] [stdout] /// 菜单状态(0显示 1隐藏)
[INFO] [stdout] #[validate(length(max = 1))] pub visible : Option < String >,
[INFO] [stdout] /// 菜单状态(0正常 1停用)
[INFO] [stdout] #[validate(length(max = 1))] pub status : Option < String >,
[INFO] [stdout] /// 权限标识
[INFO] [stdout] #[validate(length(max = 100))] pub perms : Option < String >,
[INFO] [stdout] /// 菜单图标
[INFO] [stdout] #[validate(length(max = 100))] pub icon : Option < String >, /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 备注
[INFO] [stdout] #[validate(length(max = 500))] pub remark : Option < String >,
[INFO] [stdout] /// 父id集合
[INFO] [stdout] #[validate(length(max = 500))] pub parent_ids : Option < String >,
[INFO] [stdout] /// 排序
[INFO] [stdout] pub tree_sort : Option < i32 >, /// 排序集合
[INFO] [stdout] #[validate(length(max = 500))] pub tree_sorts : Option < String >,
[INFO] [stdout] /// 层级
[INFO] [stdout] pub tree_level : Option < i32 >, /// 是否子节点(0是 1否)
[INFO] [stdout] #[validate(length(max = 1))] pub tree_leaf : Option < String >,
[INFO] [stdout] /// 创建部门
[INFO] [stdout] #[validate(length(max = 64))] pub create_dept : Option < String >,
[INFO] [stdout] /// 更新IP
[INFO] [stdout] #[validate(length(max = 128))] pub update_ip : Option < String >,
[INFO] [stdout] /// 版本
[INFO] [stdout] pub version : Option < i32 >,
[INFO] [stdout] /// 删除标志(0代表存在 1代表删除)
[INFO] [stdout] #[validate(length(max = 1))] pub del_flag : Option < String >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for SysMenu
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.id).unwrap_or_default() ; }
[INFO] [stdout] "menu_code" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.menu_code).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "menu_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.menu_name).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "parent_id" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.parent_id).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "sort" =>
[INFO] [stdout] { return rbson :: to_bson(& self.sort).unwrap_or_default() ; }
[INFO] [stdout] "path" =>
[INFO] [stdout] { return rbson :: to_bson(& self.path).unwrap_or_default() ; }
[INFO] [stdout] "component" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.component).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "is_frame" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_frame).unwrap_or_default() ; }
[INFO] [stdout] "is_cache" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_cache).unwrap_or_default() ; }
[INFO] [stdout] "menu_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.menu_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "visible" =>
[INFO] [stdout] { return rbson :: to_bson(& self.visible).unwrap_or_default() ; }
[INFO] [stdout] "status" =>
[INFO] [stdout] { return rbson :: to_bson(& self.status).unwrap_or_default() ; }
[INFO] [stdout] "perms" =>
[INFO] [stdout] { return rbson :: to_bson(& self.perms).unwrap_or_default() ; }
[INFO] [stdout] "icon" =>
[INFO] [stdout] { return rbson :: to_bson(& self.icon).unwrap_or_default() ; }
[INFO] [stdout] "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; }
[INFO] [stdout] "parent_ids" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.parent_ids).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "tree_sort" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.tree_sort).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "tree_sorts" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.tree_sorts).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "tree_level" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.tree_level).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "tree_leaf" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.tree_leaf).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_dept" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_dept).unwrap_or_default() ;
[INFO] [stdout] } "update_ip" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_ip).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "version" =>
[INFO] [stdout] { return rbson :: to_bson(& self.version).unwrap_or_default() ; }
[INFO] [stdout] "del_flag" =>
[INFO] [stdout] { return rbson :: to_bson(& self.del_flag).unwrap_or_default() ; }
[INFO] [stdout] _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "sys_menu".to_string() } fn table_columns()
[INFO] [stdout] -> String
[INFO] [stdout] {
[INFO] [stdout] "id,menu_code,menu_name,parent_id,sort,path,component,is_frame,is_cache,menu_type,visible,status,perms,icon,create_by,create_time,update_by,update_time,remark,parent_ids,tree_sort,tree_sorts,tree_level,tree_leaf,create_dept,update_ip,version,del_flag".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 模板配置表
[INFO] [stdout] #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize,
[INFO] [stdout] Validate)] #[serde(rename_all(serialize = "camelCase"))] pub struct
[INFO] [stdout] GenConfigTemplate
[INFO] [stdout] {
[INFO] [stdout] /// 主键ID
[INFO] [stdout] #[validate(length(max = 50))] pub id : Option < String >, /// 模板名称
[INFO] [stdout] #[validate(length(max = 50))] pub template_name : Option < String >,
[INFO] [stdout] /// 作者
[INFO] [stdout] #[validate(length(max = 100))] pub function_author : Option < String >,
[INFO] [stdout] /// 邮箱
[INFO] [stdout] #[validate(length(max = 100))] pub function_author_email : Option < String
[INFO] [stdout] >, /// 工作空间路径
[INFO] [stdout] #[validate(length(max = 200))] pub workspace_path : Option < String >,
[INFO] [stdout] /// 模块名
[INFO] [stdout] #[validate(length(max = 30))] pub module_name : Option < String >,
[INFO] [stdout] /// 模块包路径
[INFO] [stdout] #[validate(length(max = 100))] pub package_name : Option < String >,
[INFO] [stdout] /// 前端工作空间路径
[INFO] [stdout] #[validate(length(max = 200))] pub web_workspace_path : Option < String >,
[INFO] [stdout] /// 是否默认
[INFO] [stdout] #[validate(length(max = 10))] pub template_default : Option < String >,
[INFO] [stdout] /// 排序
[INFO] [stdout] pub sort : Option < i32 >, /// 状态(0正常 1 停用)
[INFO] [stdout] #[validate(length(max = 1))] pub status : Option < String >, /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建部门
[INFO] [stdout] #[validate(length(max = 64))] pub create_dept : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 更新IP
[INFO] [stdout] #[validate(length(max = 128))] pub update_ip : Option < String >,
[INFO] [stdout] /// 备注
[INFO] [stdout] #[validate(length(max = 500))] pub remark : Option < String >, /// 版本
[INFO] [stdout] pub version : Option < i32 >,
[INFO] [stdout] /// 删除标志(0代表存在 1代表删除)
[INFO] [stdout] #[validate(length(max = 1))] pub del_flag : Option < String >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for GenConfigTemplate
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.id).unwrap_or_default() ; }
[INFO] [stdout] "template_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.template_name).unwrap_or_default() ;
[INFO] [stdout] } "function_author" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.function_author).unwrap_or_default() ;
[INFO] [stdout] } "function_author_email" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.function_author_email).unwrap_or_default() ;
[INFO] [stdout] } "workspace_path" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.workspace_path).unwrap_or_default() ;
[INFO] [stdout] } "module_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.module_name).unwrap_or_default() ;
[INFO] [stdout] } "package_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.package_name).unwrap_or_default() ;
[INFO] [stdout] } "web_workspace_path" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.web_workspace_path).unwrap_or_default() ;
[INFO] [stdout] } "template_default" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.template_default).unwrap_or_default() ;
[INFO] [stdout] } "sort" =>
[INFO] [stdout] { return rbson :: to_bson(& self.sort).unwrap_or_default() ; }
[INFO] [stdout] "status" =>
[INFO] [stdout] { return rbson :: to_bson(& self.status).unwrap_or_default() ; }
[INFO] [stdout] "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_dept" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_dept).unwrap_or_default() ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "update_ip" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_ip).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; }
[INFO] [stdout] "version" =>
[INFO] [stdout] { return rbson :: to_bson(& self.version).unwrap_or_default() ; }
[INFO] [stdout] "del_flag" =>
[INFO] [stdout] { return rbson :: to_bson(& self.del_flag).unwrap_or_default() ; }
[INFO] [stdout] _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "gen_config_template".to_string() } fn
[INFO] [stdout] table_columns() -> String
[INFO] [stdout] {
[INFO] [stdout] "id,template_name,function_author,function_author_email,workspace_path,module_name,package_name,web_workspace_path,template_default,sort,status,create_by,create_dept,create_time,update_by,update_time,update_ip,remark,version,del_flag".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 代码生成业务表
[INFO] [stdout] #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize,
[INFO] [stdout] Validate)] #[serde(rename_all(serialize = "camelCase"))] pub struct GenTable
[INFO] [stdout] {
[INFO] [stdout] /// 编号
[INFO] [stdout] pub table_id : Option < i64 >, /// 表名称
[INFO] [stdout] #[validate(length(max = 200))] pub table_name : Option < String >,
[INFO] [stdout] /// 表描述
[INFO] [stdout] #[validate(length(max = 500))] pub table_comment : Option < String >,
[INFO] [stdout] /// 关联子表的表名
[INFO] [stdout] #[validate(length(max = 64))] pub sub_table_name : Option < String >,
[INFO] [stdout] /// 子表关联的外键名
[INFO] [stdout] #[validate(length(max = 64))] pub sub_table_fk_name : Option < String >,
[INFO] [stdout] /// 实体类名称
[INFO] [stdout] #[validate(length(max = 100))] pub class_name : Option < String >,
[INFO] [stdout] /// 使用的模板(crud单表操作 tree树表操作)
[INFO] [stdout] #[validate(length(max = 200))] pub tpl_category : Option < String >,
[INFO] [stdout] /// 工作空间
[INFO] [stdout] #[validate(length(max = 200))] pub workspace_path : Option < String >,
[INFO] [stdout] /// 模块名
[INFO] [stdout] #[validate(length(max = 30))] pub module_name : Option < String >,
[INFO] [stdout] /// 包路径
[INFO] [stdout] #[validate(length(max = 100))] pub package_name : Option < String >,
[INFO] [stdout] /// 业务名
[INFO] [stdout] #[validate(length(max = 30))] pub business_name : Option < String >,
[INFO] [stdout] /// 功能名
[INFO] [stdout] #[validate(length(max = 50))] pub function_name : Option < String >,
[INFO] [stdout] /// 作者
[INFO] [stdout] #[validate(length(max = 50))] pub function_author : Option < String >,
[INFO] [stdout] /// 邮箱
[INFO] [stdout] #[validate(length(max = 200))] pub function_author_email : Option < String
[INFO] [stdout] >, /// 前端工作空间路径
[INFO] [stdout] #[validate(length(max = 200))] pub web_workspace_path : Option < String >,
[INFO] [stdout] /// 生成代码方式(0zip压缩包 1自定义路径)
[INFO] [stdout] #[validate(length(max = 1))] pub gen_type : Option < String >, ///
[INFO] [stdout] #[validate(length(max = 4000))] pub options : Option < String >,
[INFO] [stdout] /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeUtc >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 备注
[INFO] [stdout] #[validate(length(max = 500))] pub remark : Option < String >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for GenTable
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "table_id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.table_id).unwrap_or_default() ; }
[INFO] [stdout] "table_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.table_name).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "table_comment" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.table_comment).unwrap_or_default() ;
[INFO] [stdout] } "sub_table_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.sub_table_name).unwrap_or_default() ;
[INFO] [stdout] } "sub_table_fk_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.sub_table_fk_name).unwrap_or_default() ;
[INFO] [stdout] } "class_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.class_name).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "tpl_category" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.tpl_category).unwrap_or_default() ;
[INFO] [stdout] } "workspace_path" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.workspace_path).unwrap_or_default() ;
[INFO] [stdout] } "module_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.module_name).unwrap_or_default() ;
[INFO] [stdout] } "package_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.package_name).unwrap_or_default() ;
[INFO] [stdout] } "business_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.business_name).unwrap_or_default() ;
[INFO] [stdout] } "function_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.function_name).unwrap_or_default() ;
[INFO] [stdout] } "function_author" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.function_author).unwrap_or_default() ;
[INFO] [stdout] } "function_author_email" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.function_author_email).unwrap_or_default() ;
[INFO] [stdout] } "web_workspace_path" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.web_workspace_path).unwrap_or_default() ;
[INFO] [stdout] } "gen_type" =>
[INFO] [stdout] { return rbson :: to_bson(& self.gen_type).unwrap_or_default() ; }
[INFO] [stdout] "options" =>
[INFO] [stdout] { return rbson :: to_bson(& self.options).unwrap_or_default() ; }
[INFO] [stdout] "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; } _
[INFO] [stdout] => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "gen_table".to_string() } fn table_columns()
[INFO] [stdout] -> String
[INFO] [stdout] {
[INFO] [stdout] "table_id,table_name,table_comment,sub_table_name,sub_table_fk_name,class_name,tpl_category,workspace_path,module_name,package_name,business_name,function_name,function_author,function_author_email,web_workspace_path,gen_type,options,create_by,create_time,update_by,update_time,remark".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 代码生成业务表字段
[INFO] [stdout] #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize,
[INFO] [stdout] Validate)] #[serde(rename_all(serialize = "camelCase"))] pub struct
[INFO] [stdout] GenTableColumn
[INFO] [stdout] {
[INFO] [stdout] /// 编号
[INFO] [stdout] pub column_id : Option < i64 >, /// 归属表编号
[INFO] [stdout] #[validate(length(max = 64))] pub table_id : Option < String >,
[INFO] [stdout] /// 列名称
[INFO] [stdout] #[validate(length(max = 200))] pub column_name : Option < String >,
[INFO] [stdout] /// 列描述
[INFO] [stdout] #[validate(length(max = 500))] pub column_comment : Option < String >,
[INFO] [stdout] /// 列类型
[INFO] [stdout] #[validate(length(max = 100))] pub column_type : Option < String >,
[INFO] [stdout] /// JAVA类型
[INFO] [stdout] #[validate(length(max = 500))] pub java_type : Option < String >,
[INFO] [stdout] /// JAVA字段名
[INFO] [stdout] #[validate(length(max = 200))] pub java_field : Option < String >,
[INFO] [stdout] /// 是否主键(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_pk : Option < String >,
[INFO] [stdout] /// 是否自增(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_increment : Option < String >,
[INFO] [stdout] /// 是否必填(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_required : Option < String >,
[INFO] [stdout] /// 是否为插入字段(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_insert : Option < String >,
[INFO] [stdout] /// 是否编辑字段(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_edit : Option < String >,
[INFO] [stdout] /// 是否列表字段(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_list : Option < String >,
[INFO] [stdout] /// 是否查询字段(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_query : Option < String >,
[INFO] [stdout] /// 是否唯一性
[INFO] [stdout] #[validate(length(max = 10))] pub is_unique : Option < String >,
[INFO] [stdout] /// 是否记录日志
[INFO] [stdout] #[validate(length(max = 10))] pub is_log : Option < String >, /// 新行
[INFO] [stdout] #[validate(length(max = 10))] pub is_new_row : Option < String >,
[INFO] [stdout] /// 列数
[INFO] [stdout] pub col_span : Option < i32 >, /// 对齐方式
[INFO] [stdout] #[validate(length(max = 10))] pub align_type : Option < String >,
[INFO] [stdout] /// 查询方式(等于、不等于、大于、小于、范围)
[INFO] [stdout] #[validate(length(max = 200))] pub query_type : Option < String >,
[INFO] [stdout] /// 显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)
[INFO] [stdout] #[validate(length(max = 200))] pub html_type : Option < String >,
[INFO] [stdout] /// 字典类型
[INFO] [stdout] #[validate(length(max = 200))] pub dict_type : Option < String >,
[INFO] [stdout] /// 字段校验
[INFO] [stdout] #[validate(length(max = 100))] pub col_check : Option < String >,
[INFO] [stdout] /// 排序
[INFO] [stdout] pub sort : Option < i32 >, /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for GenTableColumn
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "column_id" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.column_id).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "table_id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.table_id).unwrap_or_default() ; }
[INFO] [stdout] "column_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.column_name).unwrap_or_default() ;
[INFO] [stdout] } "column_comment" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.column_comment).unwrap_or_default() ;
[INFO] [stdout] } "column_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.column_type).unwrap_or_default() ;
[INFO] [stdout] } "java_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.java_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "java_field" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.java_field).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "is_pk" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_pk).unwrap_or_default() ; }
[INFO] [stdout] "is_increment" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.is_increment).unwrap_or_default() ;
[INFO] [stdout] } "is_required" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.is_required).unwrap_or_default() ;
[INFO] [stdout] } "is_insert" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.is_insert).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "is_edit" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_edit).unwrap_or_default() ; }
[INFO] [stdout] "is_list" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_list).unwrap_or_default() ; }
[INFO] [stdout] "is_query" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_query).unwrap_or_default() ; }
[INFO] [stdout] "is_unique" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.is_unique).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "is_log" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_log).unwrap_or_default() ; }
[INFO] [stdout] "is_new_row" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.is_new_row).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "col_span" =>
[INFO] [stdout] { return rbson :: to_bson(& self.col_span).unwrap_or_default() ; }
[INFO] [stdout] "align_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.align_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "query_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.query_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "html_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.html_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "dict_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.dict_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "col_check" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.col_check).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "sort" =>
[INFO] [stdout] { return rbson :: to_bson(& self.sort).unwrap_or_default() ; }
[INFO] [stdout] "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "gen_table_column".to_string() } fn
[INFO] [stdout] table_columns() -> String
[INFO] [stdout] {
[INFO] [stdout] "column_id,table_id,column_name,column_comment,column_type,java_type,java_field,is_pk,is_increment,is_required,is_insert,is_edit,is_list,is_query,is_unique,is_log,is_new_row,col_span,align_type,query_type,html_type,dict_type,col_check,sort,create_by,create_time,update_by,update_time".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] warning: unused import: `Timestamp`
[INFO] [stdout] --> crab-system/src/model/gen_config_template.rs:1:26
[INFO] [stdout] |
[INFO] [stdout] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused import: `Timestamp`
[INFO] [stdout] --> crab-system/src/model/gen_table.rs:1:26
[INFO] [stdout] |
[INFO] [stdout] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused import: `Timestamp`
[INFO] [stdout] --> crab-system/src/model/gen_table_column.rs:1:26
[INFO] [stdout] |
[INFO] [stdout] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout] --> crab-system/src/lib.rs:21:1
[INFO] [stdout] |
[INFO] [stdout] 21 | #[macro_use]
[INFO] [stdout] | ^^^^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout] --> crab-system/src/lib.rs:23:1
[INFO] [stdout] |
[INFO] [stdout] 23 | #[macro_use]
[INFO] [stdout] | ^^^^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: associated function is never used: `validate_captcha`
[INFO] [stdout] --> crab-system/src/service/sys_auth.rs:136:8
[INFO] [stdout] |
[INFO] [stdout] 136 | fn validate_captcha(_username: &str, code: &str, uuid: &str) -> Result<(), CrabError> {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(dead_code)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: function is never used: `file_type_by_name`
[INFO] [stdout] --> crab-system/src/common/utils/file/file_type.rs:12:10
[INFO] [stdout] |
[INFO] [stdout] 12 | async fn file_type_by_name(file_name: &str) -> &str {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: function is never used: `init_text`
[INFO] [stdout] --> crab-system/src/common/utils/html/escape.rs:6:4
[INFO] [stdout] |
[INFO] [stdout] 6 | fn init_text() -> [[char; 1]; 64] {
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: 8 warnings emitted
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stderr] Compiling crab-admin v0.1.0 (/opt/rustwide/workdir/crab-admin)
[INFO] [stdout] warning: unused import: `Json`
[INFO] [stdout] --> crab-admin/src/tool_gen.rs:4:11
[INFO] [stdout] |
[INFO] [stdout] 4 | web::{Json, Query},
[INFO] [stdout] | ^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout] --> crab-admin/src/result.rs:59:12
[INFO] [stdout] |
[INFO] [stdout] 59 | pub fn new() -> Self {
[INFO] [stdout] | ^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(dead_code)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: associated function is never used: `fail`
[INFO] [stdout] --> crab-admin/src/result.rs:79:12
[INFO] [stdout] |
[INFO] [stdout] 79 | pub fn fail() -> Self {
[INFO] [stdout] | ^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: associated function is never used: `with_code`
[INFO] [stdout] --> crab-admin/src/result.rs:89:12
[INFO] [stdout] |
[INFO] [stdout] 89 | pub fn with_code(mut self, code: u32) -> Self {
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stderr] Compiling xlsxwriter v0.3.5
[INFO] [stderr] Compiling crab-excel v0.1.0 (/opt/rustwide/workdir/crab-excel)
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 07s
[INFO] running `Command { std: "docker" "inspect" "4ed607fd00c9da91b1e0d0ad843c300f64347dde9422fc7c0418d30468c25c0d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4ed607fd00c9da91b1e0d0ad843c300f64347dde9422fc7c0418d30468c25c0d", kill_on_drop: false }`
[INFO] [stdout] 4ed607fd00c9da91b1e0d0ad843c300f64347dde9422fc7c0418d30468c25c0d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-16/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-16/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b47faf465d560c9140eb23ca28a5bcf8fcbd680f2f6e17c86b79d6c24f67e45b
[INFO] running `Command { std: "docker" "start" "-a" "b47faf465d560c9140eb23ca28a5bcf8fcbd680f2f6e17c86b79d6c24f67e45b", kill_on_drop: false }`
[INFO] [stderr] Compiling async-stream-impl v0.3.2
[INFO] [stderr] Compiling crab-excel-derive v0.1.0 (/opt/rustwide/workdir/crab-excel-derive)
[INFO] [stderr] Compiling crab-excel v0.1.0 (/opt/rustwide/workdir/crab-excel)
[INFO] [stdout] warning: unused import: `Timestamp`
[INFO] [stdout] --> crab-system/src/model/gen_config_template.rs:1:26
[INFO] [stdout] |
[INFO] [stdout] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused import: `Timestamp`
[INFO] [stdout] --> crab-system/src/model/gen_table.rs:1:26
[INFO] [stdout] |
[INFO] [stdout] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused import: `Timestamp`
[INFO] [stdout] --> crab-system/src/model/gen_table_column.rs:1:26
[INFO] [stdout] |
[INFO] [stdout] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout] --> crab-system/src/lib.rs:21:1
[INFO] [stdout] |
[INFO] [stdout] 21 | #[macro_use]
[INFO] [stdout] | ^^^^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout] --> crab-system/src/lib.rs:23:1
[INFO] [stdout] |
[INFO] [stdout] 23 | #[macro_use]
[INFO] [stdout] | ^^^^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: associated function is never used: `validate_captcha`
[INFO] [stdout] --> crab-system/src/service/sys_auth.rs:136:8
[INFO] [stdout] |
[INFO] [stdout] 136 | fn validate_captcha(_username: &str, code: &str, uuid: &str) -> Result<(), CrabError> {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(dead_code)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: function is never used: `file_type_by_name`
[INFO] [stdout] --> crab-system/src/common/utils/file/file_type.rs:12:10
[INFO] [stdout] |
[INFO] [stdout] 12 | async fn file_type_by_name(file_name: &str) -> &str {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: function is never used: `init_text`
[INFO] [stdout] --> crab-system/src/common/utils/html/escape.rs:6:4
[INFO] [stdout] |
[INFO] [stdout] 6 | fn init_text() -> [[char; 1]; 64] {
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: 8 warnings emitted
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stderr] Compiling generator v0.1.0 (/opt/rustwide/workdir/generator)
[INFO] [stderr] Compiling crab-admin v0.1.0 (/opt/rustwide/workdir/crab-admin)
[INFO] [stdout] field_name = id
[INFO] [stdout] col_name = 用户ID
[INFO] [stdout] field_name = name
[INFO] [stdout] col_name = 用户昵称
[INFO] [stdout] field_name = roles
[INFO] [stdout] col_name =
[INFO] [stdout] field_name = del
[INFO] [stdout] col_name = 是否删除
[INFO] [stdout] field_name = date
[INFO] [stdout] col_name = 日期
[INFO] [stdout] ["id", "name", "roles", "del", "date"]
[INFO] [stdout] "use simple_excel_writer :: * ; impl ExcelWriter for TestExcel\n{\n type Input = Self ; fn simple_write(data : & [Self :: Input]) -> Result <\n Option < Vec < u8 >>, crab_excel :: ExcelError >\n {\n let mut wb = Workbook :: create(\"测试数据.xlsx\") ; let mut sheet =\n wb.create_sheet(\"测试数据\") ;\n sheet.add_column(Column { width : 30.0 }) ;\n sheet.add_column(Column { width : 30.0 }) ;\n wb.write_sheet(& mut sheet, | sheet_writer |\n {\n let sw = sheet_writer ;\n sw.append_row({\n let mut row = Row :: new() ; row.add_cell(\"id\") ;\n row.add_cell(\"name\") ; row.add_cell(\"roles\") ;\n row.add_cell(\"del\") ; row.add_cell(\"date\") ; row\n }) ? ; for dt in data.iter()\n {\n let mut row = Row :: new() ; for fd in 0 .. 4\n { row.add_cell(dt.name.clone()) ; } sw.append_row(row) ;\n } Ok(())\n }).expect(\"write excel error!\") ;\n wb.close().map_err(| e | crab_excel :: ExcelError ::\n E(\"close excel error!\".to_string()))\n }\n}"
[INFO] [stdout] warning: unused variable: `excel_data`
[INFO] [stdout] --> crab-excel/tests/test.rs:89:9
[INFO] [stdout] |
[INFO] [stdout] 89 | let excel_data = wb.close().expect("close excel error!");
[INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_excel_data`
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout] --> crab-excel/tests/test.rs:18:9
[INFO] [stdout] |
[INFO] [stdout] 18 | let mut format1 = workbook.add_format().set_font_color(FormatColor::Red);
[INFO] [stdout] | ----^^^^^^^
[INFO] [stdout] | |
[INFO] [stdout] | help: remove this `mut`
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout] --> crab-excel/tests/test.rs:20:9
[INFO] [stdout] |
[INFO] [stdout] 20 | let mut format2 = workbook
[INFO] [stdout] | ----^^^^^^^
[INFO] [stdout] | |
[INFO] [stdout] | help: remove this `mut`
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout] --> crab-excel/tests/test.rs:25:9
[INFO] [stdout] |
[INFO] [stdout] 25 | let mut format3 = workbook
[INFO] [stdout] | ----^^^^^^^
[INFO] [stdout] | |
[INFO] [stdout] | help: remove this `mut`
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: field is never read: `id`
[INFO] [stdout] --> crab-excel/tests/excel_writer.rs:7:5
[INFO] [stdout] |
[INFO] [stdout] 7 | id: u32,
[INFO] [stdout] | ^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] note: `TestExcel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] --> crab-excel/tests/excel_writer.rs:4:10
[INFO] [stdout] |
[INFO] [stdout] 4 | #[derive(Debug, Default, ExcelWriter)]
[INFO] [stdout] | ^^^^^
[INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: field is never read: `roles`
[INFO] [stdout] --> crab-excel/tests/excel_writer.rs:11:5
[INFO] [stdout] |
[INFO] [stdout] 11 | roles: Vec,
[INFO] [stdout] | ^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] note: `TestExcel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] --> crab-excel/tests/excel_writer.rs:4:10
[INFO] [stdout] |
[INFO] [stdout] 4 | #[derive(Debug, Default, ExcelWriter)]
[INFO] [stdout] | ^^^^^
[INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: field is never read: `del`
[INFO] [stdout] --> crab-excel/tests/excel_writer.rs:13:5
[INFO] [stdout] |
[INFO] [stdout] 13 | del: u8,
[INFO] [stdout] | ^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] note: `TestExcel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] --> crab-excel/tests/excel_writer.rs:4:10
[INFO] [stdout] |
[INFO] [stdout] 4 | #[derive(Debug, Default, ExcelWriter)]
[INFO] [stdout] | ^^^^^
[INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: field is never read: `date`
[INFO] [stdout] --> crab-excel/tests/excel_writer.rs:15:5
[INFO] [stdout] |
[INFO] [stdout] 15 | date: u128,
[INFO] [stdout] | ^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] note: `TestExcel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] --> crab-excel/tests/excel_writer.rs:4:10
[INFO] [stdout] |
[INFO] [stdout] 4 | #[derive(Debug, Default, ExcelWriter)]
[INFO] [stdout] | ^^^^^
[INFO] [stdout] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout] --> crab-excel/tests/excel_writer.rs:4:26
[INFO] [stdout] |
[INFO] [stdout] 4 | #[derive(Debug, Default, ExcelWriter)]
[INFO] [stdout] | ^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] = note: this warning originates in the derive macro `ExcelWriter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] ............gen macro py_sql :
[INFO] [stdout] pub async fn tables(table_names : & str) -> rbatis :: core :: Result < Vec <
[INFO] [stdout] Table > >
[INFO] [stdout] {
[INFO] [stdout] let mut sql =
[INFO] [stdout] "
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] TABLE_TYPE,
[INFO] [stdout] `ENGINE`,
[INFO] [stdout] VERSION,
[INFO] [stdout] ROW_FORMAT,
[INFO] [stdout] TABLE_ROWS,
[INFO] [stdout] AVG_ROW_LENGTH,
[INFO] [stdout] DATA_LENGTH,
[INFO] [stdout] MAX_DATA_LENGTH,
[INFO] [stdout] INDEX_LENGTH,
[INFO] [stdout] DATA_FREE,
[INFO] [stdout] AUTO_INCREMENT,
[INFO] [stdout] CREATE_TIME,
[INFO] [stdout] UPDATE_TIME,
[INFO] [stdout] CHECK_TIME,
[INFO] [stdout] TABLE_COLLATION,
[INFO] [stdout] `CHECKSUM`,
[INFO] [stdout] CREATE_OPTIONS,
[INFO] [stdout] TABLE_COMMENT
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.`TABLES`
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] CREATE_TIME
[INFO] [stdout] ".to_string()
[INFO] [stdout] ; let mut rb_arg_map = rbson :: Document :: new() ;
[INFO] [stdout] rb_arg_map.insert("table_names".to_string(), rbson ::
[INFO] [stdout] to_bson(table_names).unwrap_or_default()) ; {} use rbatis :: executor ::
[INFO] [stdout] { RbatisRef } ; let driver_type = RB.get_rbatis().driver_type() ? ; use
[INFO] [stdout] rbatis :: { rbatis_sql, AsSqlTag } ; let sql_tag = driver_type.sql_tag() ;
[INFO] [stdout] #[rb_py("
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] TABLE_TYPE,
[INFO] [stdout] `ENGINE`,
[INFO] [stdout] VERSION,
[INFO] [stdout] ROW_FORMAT,
[INFO] [stdout] TABLE_ROWS,
[INFO] [stdout] AVG_ROW_LENGTH,
[INFO] [stdout] DATA_LENGTH,
[INFO] [stdout] MAX_DATA_LENGTH,
[INFO] [stdout] INDEX_LENGTH,
[INFO] [stdout] DATA_FREE,
[INFO] [stdout] AUTO_INCREMENT,
[INFO] [stdout] CREATE_TIME,
[INFO] [stdout] UPDATE_TIME,
[INFO] [stdout] CHECK_TIME,
[INFO] [stdout] TABLE_COLLATION,
[INFO] [stdout] `CHECKSUM`,
[INFO] [stdout] CREATE_OPTIONS,
[INFO] [stdout] TABLE_COMMENT
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.`TABLES`
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] CREATE_TIME
[INFO] [stdout] ")]
[INFO] [stdout] pub fn tables(arg : & rbson :: Bson, _tag : char) {} let(mut sql, rb_args)
[INFO] [stdout] = tables(& rbson :: Bson :: Document(rb_arg_map), sql_tag) ;
[INFO] [stdout] driver_type.do_replace_tag(& mut sql) ; use rbatis :: executor ::
[INFO] [stdout] { Executor, ExecutorMut } ; RB.fetch(& sql, rb_args).await
[INFO] [stdout] }
[INFO] [stdout] ............gen macro py_sql end............
[INFO] [stdout] py_sql:
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] TABLE_TYPE,
[INFO] [stdout] `ENGINE`,
[INFO] [stdout] VERSION,
[INFO] [stdout] ROW_FORMAT,
[INFO] [stdout] TABLE_ROWS,
[INFO] [stdout] AVG_ROW_LENGTH,
[INFO] [stdout] DATA_LENGTH,
[INFO] [stdout] MAX_DATA_LENGTH,
[INFO] [stdout] INDEX_LENGTH,
[INFO] [stdout] DATA_FREE,
[INFO] [stdout] AUTO_INCREMENT,
[INFO] [stdout] CREATE_TIME,
[INFO] [stdout] UPDATE_TIME,
[INFO] [stdout] CHECK_TIME,
[INFO] [stdout] TABLE_COLLATION,
[INFO] [stdout] `CHECKSUM`,
[INFO] [stdout] CREATE_OPTIONS,
[INFO] [stdout] TABLE_COMMENT
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.`TABLES`
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] CREATE_TIME
[INFO] [stdout]
[INFO] [stdout] html: SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, `ENGINE`, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH, DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT, CREATE_TIME, UPDATE_TIME, CHECK_TIME, TABLE_COLLATION, `CHECKSUM`, CREATE_OPTIONS, TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = ( SELECT DATABASE ()) AND FIND_IN_SET(TABLE_NAME, #{table_names}) ORDER BY CREATE_TIME
[INFO] [stdout] load html:[
[INFO] [stdout] {
[INFO] [stdout] tag: "update",
[INFO] [stdout] attributes: {
[INFO] [stdout] "id": "tables",
[INFO] [stdout] },
[INFO] [stdout] childs: [
[INFO] [stdout] {
[INFO] [stdout] data: "SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, `ENGINE`, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH, DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT, CREATE_TIME, UPDATE_TIME, CHECK_TIME, TABLE_COLLATION, `CHECKSUM`, CREATE_OPTIONS, TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = ( SELECT DATABASE ())",
[INFO] [stdout] },
[INFO] [stdout] {
[INFO] [stdout] tag: "if",
[INFO] [stdout] attributes: {
[INFO] [stdout] "test": "table_names != ''",
[INFO] [stdout] },
[INFO] [stdout] childs: [
[INFO] [stdout] {
[INFO] [stdout] data: "AND FIND_IN_SET(TABLE_NAME, #{table_names})",
[INFO] [stdout] },
[INFO] [stdout] ],
[INFO] [stdout] },
[INFO] [stdout] {
[INFO] [stdout] data: "ORDER BY CREATE_TIME",
[INFO] [stdout] },
[INFO] [stdout] ],
[INFO] [stdout] },
[INFO] [stdout] ]
[INFO] [stdout] ............gen rb_pysql_fn:
[INFO] [stdout] use rbatis_sql :: ops :: * ; pub fn tables(arg : & rbson :: Bson, _tag : char)
[INFO] [stdout] -> (String, Vec < rbson :: Bson >)
[INFO] [stdout] {
[INFO] [stdout] use rbatis_sql :: ops :: AsProxy ; let mut sql = String ::
[INFO] [stdout] with_capacity(1000) ; let mut args = Vec :: with_capacity(20) ;
[INFO] [stdout] sql.push_str("SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, TABLE_TYPE, `ENGINE`, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH, DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT, CREATE_TIME, UPDATE_TIME, CHECK_TIME, TABLE_COLLATION, `CHECKSUM`, CREATE_OPTIONS, TABLE_COMMENT FROM information_schema.`TABLES` WHERE TABLE_SCHEMA = ( SELECT DATABASE ())")
[INFO] [stdout] ; let dGFibGVfbmFtZXMgIT0gJyc_ =
[INFO] [stdout] { let result = { (arg.index("table_names")).op_ne(& "") } ; result } ; if
[INFO] [stdout] dGFibGVfbmFtZXMgIT0gJyc_
[INFO] [stdout] {
[INFO] [stdout] sql.push_str(" ") ; let c2VsZWN0OnRhYmxlX25hbWVz =
[INFO] [stdout] { let result = { arg.index("table_names") } ; result } ;
[INFO] [stdout] args.push(rbson :: bson! (c2VsZWN0OnRhYmxlX25hbWVz)) ;
[INFO] [stdout] sql.push_str("AND FIND_IN_SET(TABLE_NAME, ?)") ; sql.push_str(" ") ;
[INFO] [stdout] } sql.push_str("ORDER BY CREATE_TIME") ; rbatis_sql :: sql_index!
[INFO] [stdout] (sql, _tag) ; return(sql, args) ;
[INFO] [stdout] }
[INFO] [stdout] ............gen rb_pysql_fn end............
[INFO] [stdout] warning: 5 warnings emitted
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] ............gen macro py_sql :
[INFO] [stdout] pub async fn tables_columns(table_names : & str) -> rbatis :: core :: Result <
[INFO] [stdout] Vec < TableColumn > >
[INFO] [stdout] {
[INFO] [stdout] let mut sql =
[INFO] [stdout] "
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] COLUMN_NAME,
[INFO] [stdout] ORDINAL_POSITION,
[INFO] [stdout] COLUMN_DEFAULT,
[INFO] [stdout] IS_NULLABLE,
[INFO] [stdout] DATA_TYPE,
[INFO] [stdout] CHARACTER_MAXIMUM_LENGTH,
[INFO] [stdout] CHARACTER_OCTET_LENGTH,
[INFO] [stdout] NUMERIC_PRECISION,
[INFO] [stdout] NUMERIC_SCALE,
[INFO] [stdout] DATETIME_PRECISION,
[INFO] [stdout] CHARACTER_SET_NAME,
[INFO] [stdout] COLLATION_NAME,
[INFO] [stdout] COLUMN_TYPE,
[INFO] [stdout] COLUMN_KEY,
[INFO] [stdout] EXTRA,
[INFO] [stdout] `PRIVILEGES`,
[INFO] [stdout] COLUMN_COMMENT,
[INFO] [stdout] GENERATION_EXPRESSION,
[INFO] [stdout] SRS_ID
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.COLUMNS
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] ORDINAL_POSITION
[INFO] [stdout] ".to_string()
[INFO] [stdout] ; let mut rb_arg_map = rbson :: Document :: new() ;
[INFO] [stdout] rb_arg_map.insert("table_names".to_string(), rbson ::
[INFO] [stdout] to_bson(table_names).unwrap_or_default()) ; {} use rbatis :: executor ::
[INFO] [stdout] { RbatisRef } ; let driver_type = RB.get_rbatis().driver_type() ? ; use
[INFO] [stdout] rbatis :: { rbatis_sql, AsSqlTag } ; let sql_tag = driver_type.sql_tag() ;
[INFO] [stdout] #[rb_py("
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] COLUMN_NAME,
[INFO] [stdout] ORDINAL_POSITION,
[INFO] [stdout] COLUMN_DEFAULT,
[INFO] [stdout] IS_NULLABLE,
[INFO] [stdout] DATA_TYPE,
[INFO] [stdout] CHARACTER_MAXIMUM_LENGTH,
[INFO] [stdout] CHARACTER_OCTET_LENGTH,
[INFO] [stdout] NUMERIC_PRECISION,
[INFO] [stdout] NUMERIC_SCALE,
[INFO] [stdout] DATETIME_PRECISION,
[INFO] [stdout] CHARACTER_SET_NAME,
[INFO] [stdout] COLLATION_NAME,
[INFO] [stdout] COLUMN_TYPE,
[INFO] [stdout] COLUMN_KEY,
[INFO] [stdout] EXTRA,
[INFO] [stdout] `PRIVILEGES`,
[INFO] [stdout] COLUMN_COMMENT,
[INFO] [stdout] GENERATION_EXPRESSION,
[INFO] [stdout] SRS_ID
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.COLUMNS
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] ORDINAL_POSITION
[INFO] [stdout] ")]
[INFO] [stdout] pub fn tables_columns(arg : & rbson :: Bson, _tag : char) {}
[INFO] [stdout] let(mut sql, rb_args) =
[INFO] [stdout] tables_columns(& rbson :: Bson :: Document(rb_arg_map), sql_tag) ;
[INFO] [stdout] driver_type.do_replace_tag(& mut sql) ; use rbatis :: executor ::
[INFO] [stdout] { Executor, ExecutorMut } ; RB.fetch(& sql, rb_args).await
[INFO] [stdout] }
[INFO] [stdout] ............gen macro py_sql end............
[INFO] [stdout] py_sql:
[INFO] [stdout] SELECT
[INFO] [stdout] TABLE_CATALOG,
[INFO] [stdout] TABLE_SCHEMA,
[INFO] [stdout] TABLE_NAME,
[INFO] [stdout] COLUMN_NAME,
[INFO] [stdout] ORDINAL_POSITION,
[INFO] [stdout] COLUMN_DEFAULT,
[INFO] [stdout] IS_NULLABLE,
[INFO] [stdout] DATA_TYPE,
[INFO] [stdout] CHARACTER_MAXIMUM_LENGTH,
[INFO] [stdout] CHARACTER_OCTET_LENGTH,
[INFO] [stdout] NUMERIC_PRECISION,
[INFO] [stdout] NUMERIC_SCALE,
[INFO] [stdout] DATETIME_PRECISION,
[INFO] [stdout] CHARACTER_SET_NAME,
[INFO] [stdout] COLLATION_NAME,
[INFO] [stdout] COLUMN_TYPE,
[INFO] [stdout] COLUMN_KEY,
[INFO] [stdout] EXTRA,
[INFO] [stdout] `PRIVILEGES`,
[INFO] [stdout] COLUMN_COMMENT,
[INFO] [stdout] GENERATION_EXPRESSION,
[INFO] [stdout] SRS_ID
[INFO] [stdout] FROM
[INFO] [stdout] information_schema.COLUMNS
[INFO] [stdout] WHERE
[INFO] [stdout] TABLE_SCHEMA = (
[INFO] [stdout] SELECT
[INFO] [stdout] DATABASE ())
[INFO] [stdout] if table_names != '':
[INFO] [stdout] AND FIND_IN_SET(TABLE_NAME, #{table_names})
[INFO] [stdout] ORDER BY
[INFO] [stdout] ORDINAL_POSITION
[INFO] [stdout]
[INFO] [stdout] html: SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE, DATETIME_PRECISION, CHARACTER_SET_NAME, COLLATION_NAME, COLUMN_TYPE, COLUMN_KEY, EXTRA, `PRIVILEGES`, COLUMN_COMMENT, GENERATION_EXPRESSION, SRS_ID FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ( SELECT DATABASE ()) AND FIND_IN_SET(TABLE_NAME, #{table_names}) ORDER BY ORDINAL_POSITION
[INFO] [stdout] load html:[
[INFO] [stdout] {
[INFO] [stdout] tag: "update",
[INFO] [stdout] attributes: {
[INFO] [stdout] "id": "tables_columns",
[INFO] [stdout] },
[INFO] [stdout] childs: [
[INFO] [stdout] {
[INFO] [stdout] data: "SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE, DATETIME_PRECISION, CHARACTER_SET_NAME, COLLATION_NAME, COLUMN_TYPE, COLUMN_KEY, EXTRA, `PRIVILEGES`, COLUMN_COMMENT, GENERATION_EXPRESSION, SRS_ID FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ( SELECT DATABASE ())",
[INFO] [stdout] },
[INFO] [stdout] {
[INFO] [stdout] tag: "if",
[INFO] [stdout] attributes: {
[INFO] [stdout] "test": "table_names != ''",
[INFO] [stdout] },
[INFO] [stdout] childs: [
[INFO] [stdout] {
[INFO] [stdout] data: "AND FIND_IN_SET(TABLE_NAME, #{table_names})",
[INFO] [stdout] },
[INFO] [stdout] ],
[INFO] [stdout] },
[INFO] [stdout] {
[INFO] [stdout] data: "ORDER BY ORDINAL_POSITION",
[INFO] [stdout] },
[INFO] [stdout] ],
[INFO] [stdout] },
[INFO] [stdout] ]
[INFO] [stdout] ............gen rb_pysql_fn:
[INFO] [stdout] use rbatis_sql :: ops :: * ; pub fn
[INFO] [stdout] tables_columns(arg : & rbson :: Bson, _tag : char) ->
[INFO] [stdout] (String, Vec < rbson :: Bson >)
[INFO] [stdout] {
[INFO] [stdout] use rbatis_sql :: ops :: AsProxy ; let mut sql = String ::
[INFO] [stdout] with_capacity(1000) ; let mut args = Vec :: with_capacity(20) ;
[INFO] [stdout] sql.push_str("SELECT TABLE_CATALOG, TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, ORDINAL_POSITION, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE, DATETIME_PRECISION, CHARACTER_SET_NAME, COLLATION_NAME, COLUMN_TYPE, COLUMN_KEY, EXTRA, `PRIVILEGES`, COLUMN_COMMENT, GENERATION_EXPRESSION, SRS_ID FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = ( SELECT DATABASE ())")
[INFO] [stdout] ; let dGFibGVfbmFtZXMgIT0gJyc_ =
[INFO] [stdout] { let result = { (arg.index("table_names")).op_ne(& "") } ; result } ; if
[INFO] [stdout] dGFibGVfbmFtZXMgIT0gJyc_
[INFO] [stdout] {
[INFO] [stdout] sql.push_str(" ") ; let c2VsZWN0OnRhYmxlX25hbWVz =
[INFO] [stdout] { let result = { arg.index("table_names") } ; result } ;
[INFO] [stdout] args.push(rbson :: bson! (c2VsZWN0OnRhYmxlX25hbWVz)) ;
[INFO] [stdout] sql.push_str("AND FIND_IN_SET(TABLE_NAME, ?)") ; sql.push_str(" ") ;
[INFO] [stdout] } sql.push_str("ORDER BY ORDINAL_POSITION") ; rbatis_sql :: sql_index!
[INFO] [stdout] (sql, _tag) ; return(sql, args) ;
[INFO] [stdout] }
[INFO] [stdout] ............gen rb_pysql_fn end............
[INFO] [stdout] warning: unused import: `Json`
[INFO] [stdout] --> crab-admin/src/tool_gen.rs:4:11
[INFO] [stdout] |
[INFO] [stdout] 4 | web::{Json, Query},
[INFO] [stdout] | ^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stderr] Compiling async-stream v0.3.2
[INFO] [stderr] Compiling tokio-test v0.4.2
[INFO] [stdout] warning: associated function is never used: `new`
[INFO] [stdout] --> crab-admin/src/result.rs:59:12
[INFO] [stdout] |
[INFO] [stdout] 59 | pub fn new() -> Self {
[INFO] [stdout] | ^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(dead_code)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: associated function is never used: `fail`
[INFO] [stdout] --> crab-admin/src/result.rs:79:12
[INFO] [stdout] |
[INFO] [stdout] 79 | pub fn fail() -> Self {
[INFO] [stdout] | ^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: associated function is never used: `with_code`
[INFO] [stdout] --> crab-admin/src/result.rs:89:12
[INFO] [stdout] |
[INFO] [stdout] 89 | pub fn with_code(mut self, code: u32) -> Self {
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stderr] Compiling crab-system v0.1.0 (/opt/rustwide/workdir/crab-system)
[INFO] [stdout] warning: 4 warnings emitted
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 用户信息表
[INFO] [stdout] #[derive(Default, Clone, Debug, Serialize, Deserialize, Validate)]
[INFO] [stdout] #[serde(rename_all(serialize = "camelCase"))] pub struct SysUser
[INFO] [stdout] {
[INFO] [stdout] /// 用户ID
[INFO] [stdout] #[validate(length(max = 64))] pub id : Option < String >, /// 部门ID
[INFO] [stdout] #[validate(length(max = 50))] pub dept_id : Option < String >, /// 姓名
[INFO] [stdout] #[validate(length(max = 50))] pub name : Option < String >, /// 英文名
[INFO] [stdout] #[validate(length(max = 50))] pub name_en : Option < String >,
[INFO] [stdout] /// 用户编号
[INFO] [stdout] #[validate(length(max = 50))] pub no : Option < String >, /// 登陆名称
[INFO] [stdout] #[validate(length(max = 30))] pub user_name : Option < String >,
[INFO] [stdout] /// 别称
[INFO] [stdout] #[validate(length(max = 30))] pub nick_name : Option < String >,
[INFO] [stdout] /// 前后台类型标识 0:后台用户 1:前台用户
[INFO] [stdout] #[validate(length(max = 2))] pub user_type : Option < String >,
[INFO] [stdout] /// 用户邮箱
[INFO] [stdout] #[validate(length(max = 50))] pub email : Option < String >,
[INFO] [stdout] /// 手机号码
[INFO] [stdout] #[validate(length(max = 11))] pub phonenumber : Option < String >,
[INFO] [stdout] /// 用户性别(0男 1女 2未知)
[INFO] [stdout] #[validate(length(max = 1))] pub sex : Option < String >, /// 头像地址
[INFO] [stdout] #[validate(length(max = 100))] pub avatar : Option < String >, /// 密码
[INFO] [stdout] #[validate(length(max = 100))] pub password : Option < String >,
[INFO] [stdout] /// 生日
[INFO] [stdout] pub birthday : Option < rbatis :: DateNative >, /// 民族
[INFO] [stdout] #[validate(length(max = 100))] pub nation : Option < String >, /// 籍贯
[INFO] [stdout] #[validate(length(max = 100))] pub birth_address : Option < String >,
[INFO] [stdout] /// 政治面貌
[INFO] [stdout] #[validate(length(max = 50))] pub polity : Option < String >, /// 职称
[INFO] [stdout] #[validate(length(max = 100))] pub title : Option < String >,
[INFO] [stdout] /// 办公电话
[INFO] [stdout] #[validate(length(max = 50))] pub office_tel : Option < String >,
[INFO] [stdout] /// 传真号
[INFO] [stdout] #[validate(length(max = 50))] pub fax : Option < String >,
[INFO] [stdout] /// 工作地点
[INFO] [stdout] #[validate(length(max = 100))] pub work_space : Option < String >,
[INFO] [stdout] /// 排序号
[INFO] [stdout] pub sort : Option < i32 >, /// 用户姓名全拼和简拼
[INFO] [stdout] #[validate(length(max = 500))] pub user_pinyin : Option < String >,
[INFO] [stdout] /// 帐号状态(0正常 1停用)
[INFO] [stdout] #[validate(length(max = 1))] pub status : Option < String >,
[INFO] [stdout] /// 删除标志(0代表存在 2代表删除)
[INFO] [stdout] #[validate(length(max = 1))] pub del_flag : Option < String >,
[INFO] [stdout] /// 最后登录IP
[INFO] [stdout] #[validate(length(max = 128))] pub login_ip : Option < String >,
[INFO] [stdout] /// 最后登录时间
[INFO] [stdout] pub login_date : Option < rbatis :: DateTimeNative >, /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建部门
[INFO] [stdout] #[validate(length(max = 64))] pub create_dept : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 更新IP
[INFO] [stdout] #[validate(length(max = 128))] pub update_ip : Option < String >,
[INFO] [stdout] /// 备注
[INFO] [stdout] #[validate(length(max = 500))] pub remark : Option < String >, /// 版本
[INFO] [stdout] pub version : Option < i32 >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for SysUser
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.id).unwrap_or_default() ; }
[INFO] [stdout] "dept_id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.dept_id).unwrap_or_default() ; }
[INFO] [stdout] "name" =>
[INFO] [stdout] { return rbson :: to_bson(& self.name).unwrap_or_default() ; }
[INFO] [stdout] "name_en" =>
[INFO] [stdout] { return rbson :: to_bson(& self.name_en).unwrap_or_default() ; }
[INFO] [stdout] "no" =>
[INFO] [stdout] { return rbson :: to_bson(& self.no).unwrap_or_default() ; }
[INFO] [stdout] "user_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.user_name).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "nick_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.nick_name).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "user_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.user_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "email" =>
[INFO] [stdout] { return rbson :: to_bson(& self.email).unwrap_or_default() ; }
[INFO] [stdout] "phonenumber" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.phonenumber).unwrap_or_default() ;
[INFO] [stdout] } "sex" =>
[INFO] [stdout] { return rbson :: to_bson(& self.sex).unwrap_or_default() ; }
[INFO] [stdout] "avatar" =>
[INFO] [stdout] { return rbson :: to_bson(& self.avatar).unwrap_or_default() ; }
[INFO] [stdout] "password" =>
[INFO] [stdout] { return rbson :: to_bson(& self.password).unwrap_or_default() ; }
[INFO] [stdout] "birthday" =>
[INFO] [stdout] { return rbson :: to_bson(& self.birthday).unwrap_or_default() ; }
[INFO] [stdout] "nation" =>
[INFO] [stdout] { return rbson :: to_bson(& self.nation).unwrap_or_default() ; }
[INFO] [stdout] "birth_address" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.birth_address).unwrap_or_default() ;
[INFO] [stdout] } "polity" =>
[INFO] [stdout] { return rbson :: to_bson(& self.polity).unwrap_or_default() ; }
[INFO] [stdout] "title" =>
[INFO] [stdout] { return rbson :: to_bson(& self.title).unwrap_or_default() ; }
[INFO] [stdout] "office_tel" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.office_tel).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "fax" =>
[INFO] [stdout] { return rbson :: to_bson(& self.fax).unwrap_or_default() ; }
[INFO] [stdout] "work_space" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.work_space).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "sort" =>
[INFO] [stdout] { return rbson :: to_bson(& self.sort).unwrap_or_default() ; }
[INFO] [stdout] "user_pinyin" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.user_pinyin).unwrap_or_default() ;
[INFO] [stdout] } "status" =>
[INFO] [stdout] { return rbson :: to_bson(& self.status).unwrap_or_default() ; }
[INFO] [stdout] "del_flag" =>
[INFO] [stdout] { return rbson :: to_bson(& self.del_flag).unwrap_or_default() ; }
[INFO] [stdout] "login_ip" =>
[INFO] [stdout] { return rbson :: to_bson(& self.login_ip).unwrap_or_default() ; }
[INFO] [stdout] "login_date" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.login_date).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_dept" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_dept).unwrap_or_default() ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "update_ip" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_ip).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; }
[INFO] [stdout] "version" =>
[INFO] [stdout] { return rbson :: to_bson(& self.version).unwrap_or_default() ; }
[INFO] [stdout] _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "sys_user".to_string() } fn table_columns()
[INFO] [stdout] -> String
[INFO] [stdout] {
[INFO] [stdout] "id,dept_id,name,name_en,no,user_name,nick_name,user_type,email,phonenumber,sex,avatar,password,birthday,nation,birth_address,polity,title,office_tel,fax,work_space,sort,user_pinyin,status,del_flag,login_ip,login_date,create_by,create_dept,create_time,update_by,update_time,update_ip,remark,version".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 参数配置表
[INFO] [stdout] #[derive(Default, Clone, Debug, Serialize, Deserialize, Validate)]
[INFO] [stdout] #[serde(rename_all(serialize = "camelCase"))] pub struct SysConfig
[INFO] [stdout] {
[INFO] [stdout] /// 参数名称
[INFO] [stdout] #[validate(length(max = 100))] pub config_name : Option < String >,
[INFO] [stdout] /// 参数键名
[INFO] [stdout] #[validate(length(max = 100))] pub config_key : Option < String >,
[INFO] [stdout] /// 参数键值
[INFO] [stdout] #[validate(length(max = 500))] pub config_value : Option < String >,
[INFO] [stdout] /// 系统内置(Y是 N否)
[INFO] [stdout] #[validate(length(max = 1))] pub config_type : Option < String >,
[INFO] [stdout] /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 备注
[INFO] [stdout] #[validate(length(max = 500))] pub remark : Option < String >,
[INFO] [stdout] /// 岗位ID
[INFO] [stdout] #[validate(length(max = 64))] pub id : Option < String >, /// 版本
[INFO] [stdout] pub version : Option < i32 >,
[INFO] [stdout] /// 删除标志(0代表存在 1代表删除)
[INFO] [stdout] #[validate(length(max = 1))] pub del_flag : Option < String >,
[INFO] [stdout] /// 更新IP
[INFO] [stdout] #[validate(length(max = 128))] pub update_ip : Option < String >,
[INFO] [stdout] /// 创建部门
[INFO] [stdout] #[validate(length(max = 64))] pub create_dept : Option < String >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for SysConfig
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "config_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.config_name).unwrap_or_default() ;
[INFO] [stdout] } "config_key" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.config_key).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "config_value" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.config_value).unwrap_or_default() ;
[INFO] [stdout] } "config_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.config_type).unwrap_or_default() ;
[INFO] [stdout] } "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; }
[INFO] [stdout] "id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.id).unwrap_or_default() ; }
[INFO] [stdout] "version" =>
[INFO] [stdout] { return rbson :: to_bson(& self.version).unwrap_or_default() ; }
[INFO] [stdout] "del_flag" =>
[INFO] [stdout] { return rbson :: to_bson(& self.del_flag).unwrap_or_default() ; }
[INFO] [stdout] "update_ip" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_ip).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_dept" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_dept).unwrap_or_default() ;
[INFO] [stdout] } _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "sys_config".to_string() } fn
[INFO] [stdout] table_columns() -> String
[INFO] [stdout] {
[INFO] [stdout] "config_name,config_key,config_value,config_type,create_by,create_time,update_by,update_time,remark,id,version,del_flag,update_ip,create_dept".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 通知公告表
[INFO] [stdout] #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize,
[INFO] [stdout] Validate)] #[serde(rename_all(serialize = "camelCase"))] pub struct SysNotice
[INFO] [stdout] {
[INFO] [stdout] /// id
[INFO] [stdout] #[validate(length(max = 64))] pub id : Option < String >, /// 公告标题
[INFO] [stdout] #[validate(length(max = 50))] pub notice_title : Option < String >,
[INFO] [stdout] /// 公告类型(1通知 2公告)
[INFO] [stdout] #[validate(length(max = 1))] pub notice_type : Option < String >,
[INFO] [stdout] /// 公告内容
[INFO] [stdout] pub notice_content : Option < Vec < u8 >>, /// 公告内容HTML
[INFO] [stdout] pub notice_content_html : Option < Vec < u8 >>,
[INFO] [stdout] /// 公告状态(0正常 1关闭)
[INFO] [stdout] #[validate(length(max = 1))] pub status : Option < String >, /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 备注
[INFO] [stdout] #[validate(length(max = 255))] pub remark : Option < String >, /// 版本
[INFO] [stdout] pub version : Option < i32 >,
[INFO] [stdout] /// 删除标志(0代表存在 1代表删除)
[INFO] [stdout] #[validate(length(max = 1))] pub del_flag : Option < String >,
[INFO] [stdout] /// 更新IP
[INFO] [stdout] #[validate(length(max = 128))] pub update_ip : Option < String >,
[INFO] [stdout] /// 创建部门
[INFO] [stdout] #[validate(length(max = 64))] pub create_dept : Option < String >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for SysNotice
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.id).unwrap_or_default() ; }
[INFO] [stdout] "notice_title" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.notice_title).unwrap_or_default() ;
[INFO] [stdout] } "notice_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.notice_type).unwrap_or_default() ;
[INFO] [stdout] } "notice_content" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.notice_content).unwrap_or_default() ;
[INFO] [stdout] } "notice_content_html" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.notice_content_html).unwrap_or_default() ;
[INFO] [stdout] } "status" =>
[INFO] [stdout] { return rbson :: to_bson(& self.status).unwrap_or_default() ; }
[INFO] [stdout] "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; }
[INFO] [stdout] "version" =>
[INFO] [stdout] { return rbson :: to_bson(& self.version).unwrap_or_default() ; }
[INFO] [stdout] "del_flag" =>
[INFO] [stdout] { return rbson :: to_bson(& self.del_flag).unwrap_or_default() ; }
[INFO] [stdout] "update_ip" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_ip).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_dept" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_dept).unwrap_or_default() ;
[INFO] [stdout] } _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "sys_notice".to_string() } fn
[INFO] [stdout] table_columns() -> String
[INFO] [stdout] {
[INFO] [stdout] "id,notice_title,notice_type,notice_content,notice_content_html,status,create_by,create_time,update_by,update_time,remark,version,del_flag,update_ip,create_dept".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] ///
[INFO] [stdout] #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Hash, Deserialize,
[INFO] [stdout] Validate)] #[serde(rename_all(serialize = "camelCase"))] pub struct SysMenu
[INFO] [stdout] {
[INFO] [stdout] /// ID
[INFO] [stdout] #[validate(length(max = 64))] pub id : Option < String >, /// 菜单编码
[INFO] [stdout] #[validate(length(max = 500))] pub menu_code : Option < String >,
[INFO] [stdout] /// 菜单名称
[INFO] [stdout] #[validate(length(max = 50))] pub menu_name : Option < String >,
[INFO] [stdout] /// 父菜单ID
[INFO] [stdout] #[validate(length(max = 64))] pub parent_id : Option < String >,
[INFO] [stdout] /// 显示顺序
[INFO] [stdout] pub sort : Option < i32 >, /// 路由地址
[INFO] [stdout] #[validate(length(max = 200))] pub path : Option < String >,
[INFO] [stdout] /// 组件路径
[INFO] [stdout] #[validate(length(max = 255))] pub component : Option < String >,
[INFO] [stdout] /// 是否为外链(0是 1否)
[INFO] [stdout] pub is_frame : Option < i32 >, /// 是否缓存(0缓存 1不缓存)
[INFO] [stdout] pub is_cache : Option < i32 >,
[INFO] [stdout] /// 菜单类型(M目录 C菜单 F按钮)
[INFO] [stdout] #[validate(length(max = 1))] pub menu_type : Option < String >,
[INFO] [stdout] /// 菜单状态(0显示 1隐藏)
[INFO] [stdout] #[validate(length(max = 1))] pub visible : Option < String >,
[INFO] [stdout] /// 菜单状态(0正常 1停用)
[INFO] [stdout] #[validate(length(max = 1))] pub status : Option < String >,
[INFO] [stdout] /// 权限标识
[INFO] [stdout] #[validate(length(max = 100))] pub perms : Option < String >,
[INFO] [stdout] /// 菜单图标
[INFO] [stdout] #[validate(length(max = 100))] pub icon : Option < String >, /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 备注
[INFO] [stdout] #[validate(length(max = 500))] pub remark : Option < String >,
[INFO] [stdout] /// 父id集合
[INFO] [stdout] #[validate(length(max = 500))] pub parent_ids : Option < String >,
[INFO] [stdout] /// 排序
[INFO] [stdout] pub tree_sort : Option < i32 >, /// 排序集合
[INFO] [stdout] #[validate(length(max = 500))] pub tree_sorts : Option < String >,
[INFO] [stdout] /// 层级
[INFO] [stdout] pub tree_level : Option < i32 >, /// 是否子节点(0是 1否)
[INFO] [stdout] #[validate(length(max = 1))] pub tree_leaf : Option < String >,
[INFO] [stdout] /// 创建部门
[INFO] [stdout] #[validate(length(max = 64))] pub create_dept : Option < String >,
[INFO] [stdout] /// 更新IP
[INFO] [stdout] #[validate(length(max = 128))] pub update_ip : Option < String >,
[INFO] [stdout] /// 版本
[INFO] [stdout] pub version : Option < i32 >,
[INFO] [stdout] /// 删除标志(0代表存在 1代表删除)
[INFO] [stdout] #[validate(length(max = 1))] pub del_flag : Option < String >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for SysMenu
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.id).unwrap_or_default() ; }
[INFO] [stdout] "menu_code" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.menu_code).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "menu_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.menu_name).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "parent_id" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.parent_id).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "sort" =>
[INFO] [stdout] { return rbson :: to_bson(& self.sort).unwrap_or_default() ; }
[INFO] [stdout] "path" =>
[INFO] [stdout] { return rbson :: to_bson(& self.path).unwrap_or_default() ; }
[INFO] [stdout] "component" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.component).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "is_frame" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_frame).unwrap_or_default() ; }
[INFO] [stdout] "is_cache" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_cache).unwrap_or_default() ; }
[INFO] [stdout] "menu_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.menu_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "visible" =>
[INFO] [stdout] { return rbson :: to_bson(& self.visible).unwrap_or_default() ; }
[INFO] [stdout] "status" =>
[INFO] [stdout] { return rbson :: to_bson(& self.status).unwrap_or_default() ; }
[INFO] [stdout] "perms" =>
[INFO] [stdout] { return rbson :: to_bson(& self.perms).unwrap_or_default() ; }
[INFO] [stdout] "icon" =>
[INFO] [stdout] { return rbson :: to_bson(& self.icon).unwrap_or_default() ; }
[INFO] [stdout] "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; }
[INFO] [stdout] "parent_ids" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.parent_ids).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "tree_sort" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.tree_sort).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "tree_sorts" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.tree_sorts).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "tree_level" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.tree_level).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "tree_leaf" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.tree_leaf).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_dept" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_dept).unwrap_or_default() ;
[INFO] [stdout] } "update_ip" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_ip).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "version" =>
[INFO] [stdout] { return rbson :: to_bson(& self.version).unwrap_or_default() ; }
[INFO] [stdout] "del_flag" =>
[INFO] [stdout] { return rbson :: to_bson(& self.del_flag).unwrap_or_default() ; }
[INFO] [stdout] _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "sys_menu".to_string() } fn table_columns()
[INFO] [stdout] -> String
[INFO] [stdout] {
[INFO] [stdout] "id,menu_code,menu_name,parent_id,sort,path,component,is_frame,is_cache,menu_type,visible,status,perms,icon,create_by,create_time,update_by,update_time,remark,parent_ids,tree_sort,tree_sorts,tree_level,tree_leaf,create_dept,update_ip,version,del_flag".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 模板配置表
[INFO] [stdout] #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize,
[INFO] [stdout] Validate)] #[serde(rename_all(serialize = "camelCase"))] pub struct
[INFO] [stdout] GenConfigTemplate
[INFO] [stdout] {
[INFO] [stdout] /// 主键ID
[INFO] [stdout] #[validate(length(max = 50))] pub id : Option < String >, /// 模板名称
[INFO] [stdout] #[validate(length(max = 50))] pub template_name : Option < String >,
[INFO] [stdout] /// 作者
[INFO] [stdout] #[validate(length(max = 100))] pub function_author : Option < String >,
[INFO] [stdout] /// 邮箱
[INFO] [stdout] #[validate(length(max = 100))] pub function_author_email : Option < String
[INFO] [stdout] >, /// 工作空间路径
[INFO] [stdout] #[validate(length(max = 200))] pub workspace_path : Option < String >,
[INFO] [stdout] /// 模块名
[INFO] [stdout] #[validate(length(max = 30))] pub module_name : Option < String >,
[INFO] [stdout] /// 模块包路径
[INFO] [stdout] #[validate(length(max = 100))] pub package_name : Option < String >,
[INFO] [stdout] /// 前端工作空间路径
[INFO] [stdout] #[validate(length(max = 200))] pub web_workspace_path : Option < String >,
[INFO] [stdout] /// 是否默认
[INFO] [stdout] #[validate(length(max = 10))] pub template_default : Option < String >,
[INFO] [stdout] /// 排序
[INFO] [stdout] pub sort : Option < i32 >, /// 状态(0正常 1 停用)
[INFO] [stdout] #[validate(length(max = 1))] pub status : Option < String >, /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建部门
[INFO] [stdout] #[validate(length(max = 64))] pub create_dept : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 更新IP
[INFO] [stdout] #[validate(length(max = 128))] pub update_ip : Option < String >,
[INFO] [stdout] /// 备注
[INFO] [stdout] #[validate(length(max = 500))] pub remark : Option < String >, /// 版本
[INFO] [stdout] pub version : Option < i32 >,
[INFO] [stdout] /// 删除标志(0代表存在 1代表删除)
[INFO] [stdout] #[validate(length(max = 1))] pub del_flag : Option < String >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for GenConfigTemplate
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.id).unwrap_or_default() ; }
[INFO] [stdout] "template_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.template_name).unwrap_or_default() ;
[INFO] [stdout] } "function_author" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.function_author).unwrap_or_default() ;
[INFO] [stdout] } "function_author_email" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.function_author_email).unwrap_or_default() ;
[INFO] [stdout] } "workspace_path" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.workspace_path).unwrap_or_default() ;
[INFO] [stdout] } "module_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.module_name).unwrap_or_default() ;
[INFO] [stdout] } "package_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.package_name).unwrap_or_default() ;
[INFO] [stdout] } "web_workspace_path" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.web_workspace_path).unwrap_or_default() ;
[INFO] [stdout] } "template_default" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.template_default).unwrap_or_default() ;
[INFO] [stdout] } "sort" =>
[INFO] [stdout] { return rbson :: to_bson(& self.sort).unwrap_or_default() ; }
[INFO] [stdout] "status" =>
[INFO] [stdout] { return rbson :: to_bson(& self.status).unwrap_or_default() ; }
[INFO] [stdout] "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_dept" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_dept).unwrap_or_default() ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "update_ip" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_ip).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; }
[INFO] [stdout] "version" =>
[INFO] [stdout] { return rbson :: to_bson(& self.version).unwrap_or_default() ; }
[INFO] [stdout] "del_flag" =>
[INFO] [stdout] { return rbson :: to_bson(& self.del_flag).unwrap_or_default() ; }
[INFO] [stdout] _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "gen_config_template".to_string() } fn
[INFO] [stdout] table_columns() -> String
[INFO] [stdout] {
[INFO] [stdout] "id,template_name,function_author,function_author_email,workspace_path,module_name,package_name,web_workspace_path,template_default,sort,status,create_by,create_dept,create_time,update_by,update_time,update_ip,remark,version,del_flag".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 代码生成业务表
[INFO] [stdout] #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize,
[INFO] [stdout] Validate)] #[serde(rename_all(serialize = "camelCase"))] pub struct GenTable
[INFO] [stdout] {
[INFO] [stdout] /// 编号
[INFO] [stdout] pub table_id : Option < i64 >, /// 表名称
[INFO] [stdout] #[validate(length(max = 200))] pub table_name : Option < String >,
[INFO] [stdout] /// 表描述
[INFO] [stdout] #[validate(length(max = 500))] pub table_comment : Option < String >,
[INFO] [stdout] /// 关联子表的表名
[INFO] [stdout] #[validate(length(max = 64))] pub sub_table_name : Option < String >,
[INFO] [stdout] /// 子表关联的外键名
[INFO] [stdout] #[validate(length(max = 64))] pub sub_table_fk_name : Option < String >,
[INFO] [stdout] /// 实体类名称
[INFO] [stdout] #[validate(length(max = 100))] pub class_name : Option < String >,
[INFO] [stdout] /// 使用的模板(crud单表操作 tree树表操作)
[INFO] [stdout] #[validate(length(max = 200))] pub tpl_category : Option < String >,
[INFO] [stdout] /// 工作空间
[INFO] [stdout] #[validate(length(max = 200))] pub workspace_path : Option < String >,
[INFO] [stdout] /// 模块名
[INFO] [stdout] #[validate(length(max = 30))] pub module_name : Option < String >,
[INFO] [stdout] /// 包路径
[INFO] [stdout] #[validate(length(max = 100))] pub package_name : Option < String >,
[INFO] [stdout] /// 业务名
[INFO] [stdout] #[validate(length(max = 30))] pub business_name : Option < String >,
[INFO] [stdout] /// 功能名
[INFO] [stdout] #[validate(length(max = 50))] pub function_name : Option < String >,
[INFO] [stdout] /// 作者
[INFO] [stdout] #[validate(length(max = 50))] pub function_author : Option < String >,
[INFO] [stdout] /// 邮箱
[INFO] [stdout] #[validate(length(max = 200))] pub function_author_email : Option < String
[INFO] [stdout] >, /// 前端工作空间路径
[INFO] [stdout] #[validate(length(max = 200))] pub web_workspace_path : Option < String >,
[INFO] [stdout] /// 生成代码方式(0zip压缩包 1自定义路径)
[INFO] [stdout] #[validate(length(max = 1))] pub gen_type : Option < String >, ///
[INFO] [stdout] #[validate(length(max = 4000))] pub options : Option < String >,
[INFO] [stdout] /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeUtc >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >, /// 备注
[INFO] [stdout] #[validate(length(max = 500))] pub remark : Option < String >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for GenTable
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "table_id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.table_id).unwrap_or_default() ; }
[INFO] [stdout] "table_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.table_name).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "table_comment" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.table_comment).unwrap_or_default() ;
[INFO] [stdout] } "sub_table_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.sub_table_name).unwrap_or_default() ;
[INFO] [stdout] } "sub_table_fk_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.sub_table_fk_name).unwrap_or_default() ;
[INFO] [stdout] } "class_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.class_name).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "tpl_category" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.tpl_category).unwrap_or_default() ;
[INFO] [stdout] } "workspace_path" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.workspace_path).unwrap_or_default() ;
[INFO] [stdout] } "module_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.module_name).unwrap_or_default() ;
[INFO] [stdout] } "package_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.package_name).unwrap_or_default() ;
[INFO] [stdout] } "business_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.business_name).unwrap_or_default() ;
[INFO] [stdout] } "function_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.function_name).unwrap_or_default() ;
[INFO] [stdout] } "function_author" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.function_author).unwrap_or_default() ;
[INFO] [stdout] } "function_author_email" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.function_author_email).unwrap_or_default() ;
[INFO] [stdout] } "web_workspace_path" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.web_workspace_path).unwrap_or_default() ;
[INFO] [stdout] } "gen_type" =>
[INFO] [stdout] { return rbson :: to_bson(& self.gen_type).unwrap_or_default() ; }
[INFO] [stdout] "options" =>
[INFO] [stdout] { return rbson :: to_bson(& self.options).unwrap_or_default() ; }
[INFO] [stdout] "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } "remark" =>
[INFO] [stdout] { return rbson :: to_bson(& self.remark).unwrap_or_default() ; } _
[INFO] [stdout] => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "gen_table".to_string() } fn table_columns()
[INFO] [stdout] -> String
[INFO] [stdout] {
[INFO] [stdout] "table_id,table_name,table_comment,sub_table_name,sub_table_fk_name,class_name,tpl_category,workspace_path,module_name,package_name,business_name,function_name,function_author,function_author_email,web_workspace_path,gen_type,options,create_by,create_time,update_by,update_time,remark".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] ............gen impl CRUDTable:
[INFO] [stdout] /// 代码生成业务表字段
[INFO] [stdout] #[derive(Debug, Default, Clone, PartialEq, Eq, Serialize, Deserialize,
[INFO] [stdout] Validate)] #[serde(rename_all(serialize = "camelCase"))] pub struct
[INFO] [stdout] GenTableColumn
[INFO] [stdout] {
[INFO] [stdout] /// 编号
[INFO] [stdout] pub column_id : Option < i64 >, /// 归属表编号
[INFO] [stdout] #[validate(length(max = 64))] pub table_id : Option < String >,
[INFO] [stdout] /// 列名称
[INFO] [stdout] #[validate(length(max = 200))] pub column_name : Option < String >,
[INFO] [stdout] /// 列描述
[INFO] [stdout] #[validate(length(max = 500))] pub column_comment : Option < String >,
[INFO] [stdout] /// 列类型
[INFO] [stdout] #[validate(length(max = 100))] pub column_type : Option < String >,
[INFO] [stdout] /// JAVA类型
[INFO] [stdout] #[validate(length(max = 500))] pub java_type : Option < String >,
[INFO] [stdout] /// JAVA字段名
[INFO] [stdout] #[validate(length(max = 200))] pub java_field : Option < String >,
[INFO] [stdout] /// 是否主键(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_pk : Option < String >,
[INFO] [stdout] /// 是否自增(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_increment : Option < String >,
[INFO] [stdout] /// 是否必填(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_required : Option < String >,
[INFO] [stdout] /// 是否为插入字段(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_insert : Option < String >,
[INFO] [stdout] /// 是否编辑字段(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_edit : Option < String >,
[INFO] [stdout] /// 是否列表字段(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_list : Option < String >,
[INFO] [stdout] /// 是否查询字段(1是)
[INFO] [stdout] #[validate(length(max = 10))] pub is_query : Option < String >,
[INFO] [stdout] /// 是否唯一性
[INFO] [stdout] #[validate(length(max = 10))] pub is_unique : Option < String >,
[INFO] [stdout] /// 是否记录日志
[INFO] [stdout] #[validate(length(max = 10))] pub is_log : Option < String >, /// 新行
[INFO] [stdout] #[validate(length(max = 10))] pub is_new_row : Option < String >,
[INFO] [stdout] /// 列数
[INFO] [stdout] pub col_span : Option < i32 >, /// 对齐方式
[INFO] [stdout] #[validate(length(max = 10))] pub align_type : Option < String >,
[INFO] [stdout] /// 查询方式(等于、不等于、大于、小于、范围)
[INFO] [stdout] #[validate(length(max = 200))] pub query_type : Option < String >,
[INFO] [stdout] /// 显示类型(文本框、文本域、下拉框、复选框、单选框、日期控件)
[INFO] [stdout] #[validate(length(max = 200))] pub html_type : Option < String >,
[INFO] [stdout] /// 字典类型
[INFO] [stdout] #[validate(length(max = 200))] pub dict_type : Option < String >,
[INFO] [stdout] /// 字段校验
[INFO] [stdout] #[validate(length(max = 100))] pub col_check : Option < String >,
[INFO] [stdout] /// 排序
[INFO] [stdout] pub sort : Option < i32 >, /// 创建者
[INFO] [stdout] #[validate(length(max = 64))] pub create_by : Option < String >,
[INFO] [stdout] /// 创建时间
[INFO] [stdout] pub create_time : Option < rbatis :: DateTimeNative >, /// 更新者
[INFO] [stdout] #[validate(length(max = 64))] pub update_by : Option < String >,
[INFO] [stdout] /// 更新时间
[INFO] [stdout] pub update_time : Option < rbatis :: DateTimeNative >,
[INFO] [stdout] } impl rbatis :: crud :: CRUDTable for GenTableColumn
[INFO] [stdout] {
[INFO] [stdout] fn get(& self, column : & str) -> rbson :: Bson
[INFO] [stdout] {
[INFO] [stdout] return match column
[INFO] [stdout] {
[INFO] [stdout] "column_id" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.column_id).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "table_id" =>
[INFO] [stdout] { return rbson :: to_bson(& self.table_id).unwrap_or_default() ; }
[INFO] [stdout] "column_name" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.column_name).unwrap_or_default() ;
[INFO] [stdout] } "column_comment" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.column_comment).unwrap_or_default() ;
[INFO] [stdout] } "column_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.column_type).unwrap_or_default() ;
[INFO] [stdout] } "java_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.java_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "java_field" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.java_field).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "is_pk" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_pk).unwrap_or_default() ; }
[INFO] [stdout] "is_increment" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.is_increment).unwrap_or_default() ;
[INFO] [stdout] } "is_required" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.is_required).unwrap_or_default() ;
[INFO] [stdout] } "is_insert" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.is_insert).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "is_edit" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_edit).unwrap_or_default() ; }
[INFO] [stdout] "is_list" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_list).unwrap_or_default() ; }
[INFO] [stdout] "is_query" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_query).unwrap_or_default() ; }
[INFO] [stdout] "is_unique" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.is_unique).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "is_log" =>
[INFO] [stdout] { return rbson :: to_bson(& self.is_log).unwrap_or_default() ; }
[INFO] [stdout] "is_new_row" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.is_new_row).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "col_span" =>
[INFO] [stdout] { return rbson :: to_bson(& self.col_span).unwrap_or_default() ; }
[INFO] [stdout] "align_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.align_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "query_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.query_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "html_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.html_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "dict_type" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.dict_type).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "col_check" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.col_check).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "sort" =>
[INFO] [stdout] { return rbson :: to_bson(& self.sort).unwrap_or_default() ; }
[INFO] [stdout] "create_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.create_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "create_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.create_time).unwrap_or_default() ;
[INFO] [stdout] } "update_by" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson :: to_bson(& self.update_by).unwrap_or_default()
[INFO] [stdout] ;
[INFO] [stdout] } "update_time" =>
[INFO] [stdout] {
[INFO] [stdout] return rbson ::
[INFO] [stdout] to_bson(& self.update_time).unwrap_or_default() ;
[INFO] [stdout] } _ => { rbson :: Bson :: Null }
[INFO] [stdout] }
[INFO] [stdout] } fn table_name() -> String { "gen_table_column".to_string() } fn
[INFO] [stdout] table_columns() -> String
[INFO] [stdout] {
[INFO] [stdout] "column_id,table_id,column_name,column_comment,column_type,java_type,java_field,is_pk,is_increment,is_required,is_insert,is_edit,is_list,is_query,is_unique,is_log,is_new_row,col_span,align_type,query_type,html_type,dict_type,col_check,sort,create_by,create_time,update_by,update_time".to_string()
[INFO] [stdout] } fn formats(driver_type : & rbatis :: core :: db :: DriverType) -> std ::
[INFO] [stdout] collections :: HashMap < String, fn(arg : & str) -> String >
[INFO] [stdout] {
[INFO] [stdout] let mut m : std :: collections :: HashMap < String, fn(arg : & str) ->
[INFO] [stdout] String > = std :: collections :: HashMap :: new() ; match driver_type
[INFO] [stdout] {
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mysql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Postgres => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Sqlite => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: Mssql => { return m ; },
[INFO] [stdout] rbatis :: core :: db :: DriverType :: None => { return m ; },
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] }
[INFO] [stdout] ............gen impl CRUDTable end............
[INFO] [stdout] warning: unused import: `Timestamp`
[INFO] [stdout] --> crab-system/src/model/gen_config_template.rs:1:26
[INFO] [stdout] |
[INFO] [stdout] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused import: `Timestamp`
[INFO] [stdout] --> crab-system/src/model/gen_table.rs:1:26
[INFO] [stdout] |
[INFO] [stdout] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused import: `Timestamp`
[INFO] [stdout] --> crab-system/src/model/gen_table_column.rs:1:26
[INFO] [stdout] |
[INFO] [stdout] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout] --> crab-system/src/lib.rs:21:1
[INFO] [stdout] |
[INFO] [stdout] 21 | #[macro_use]
[INFO] [stdout] | ^^^^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: unused `#[macro_use]` import
[INFO] [stdout] --> crab-system/src/lib.rs:23:1
[INFO] [stdout] |
[INFO] [stdout] 23 | #[macro_use]
[INFO] [stdout] | ^^^^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: associated function is never used: `validate_captcha`
[INFO] [stdout] --> crab-system/src/service/sys_auth.rs:136:8
[INFO] [stdout] |
[INFO] [stdout] 136 | fn validate_captcha(_username: &str, code: &str, uuid: &str) -> Result<(), CrabError> {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^
[INFO] [stdout] |
[INFO] [stdout] = note: `#[warn(dead_code)]` on by default
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: function is never used: `file_type_by_name`
[INFO] [stdout] --> crab-system/src/common/utils/file/file_type.rs:12:10
[INFO] [stdout] |
[INFO] [stdout] 12 | async fn file_type_by_name(file_name: &str) -> &str {
[INFO] [stdout] | ^^^^^^^^^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: function is never used: `init_text`
[INFO] [stdout] --> crab-system/src/common/utils/html/escape.rs:6:4
[INFO] [stdout] |
[INFO] [stdout] 6 | fn init_text() -> [[char; 1]; 64] {
[INFO] [stdout] | ^^^^^^^^^
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stdout] warning: 8 warnings emitted
[INFO] [stdout]
[INFO] [stdout]
[INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 8.08s
[INFO] [stderr] Executable unittests src/main.rs (/opt/rustwide/target/debug/deps/crab_admin-6ea55858448e7170)
[INFO] [stderr] Executable unittests src/lib.rs (/opt/rustwide/target/debug/deps/crab_excel-f1b7e7dc70994a99)
[INFO] [stderr] Executable tests/excel_writer.rs (/opt/rustwide/target/debug/deps/excel_writer-cc8b536cb0a85473)
[INFO] [stderr] Executable tests/test.rs (/opt/rustwide/target/debug/deps/test-43b0f148efbc22cf)
[INFO] [stderr] Executable unittests src/lib.rs (/opt/rustwide/target/debug/deps/crab_excel_derive-192bbea3e0780c3b)
[INFO] [stderr] Executable unittests src/lib.rs (/opt/rustwide/target/debug/deps/crab_system-91ad48bb68ab06ff)
[INFO] [stderr] Executable unittests src/main.rs (/opt/rustwide/target/debug/deps/generator-92ab43e1c698371e)
[INFO] running `Command { std: "docker" "inspect" "b47faf465d560c9140eb23ca28a5bcf8fcbd680f2f6e17c86b79d6c24f67e45b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b47faf465d560c9140eb23ca28a5bcf8fcbd680f2f6e17c86b79d6c24f67e45b", kill_on_drop: false }`
[INFO] [stdout] b47faf465d560c9140eb23ca28a5bcf8fcbd680f2f6e17c86b79d6c24f67e45b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-16/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-16/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:b0c94ce3c1162fcb8e57cac5b65ec2f72eabb1eebea4fcc35e269e823f681646" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2022-04-10" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 0bb5390a0fb3b205dff0f3b9f07dca9957a2c9decbbc3166ae3eb0708f9c3827
[INFO] running `Command { std: "docker" "start" "-a" "0bb5390a0fb3b205dff0f3b9f07dca9957a2c9decbbc3166ae3eb0708f9c3827", kill_on_drop: false }`
[INFO] [stderr] warning: unused import: `Timestamp`
[INFO] [stderr] --> crab-system/src/model/gen_config_template.rs:1:26
[INFO] [stderr] |
[INFO] [stderr] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stderr] | ^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr]
[INFO] [stderr] warning: unused import: `Timestamp`
[INFO] [stderr] --> crab-system/src/model/gen_table.rs:1:26
[INFO] [stderr] |
[INFO] [stderr] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stderr] | ^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: unused import: `Timestamp`
[INFO] [stderr] --> crab-system/src/model/gen_table_column.rs:1:26
[INFO] [stderr] |
[INFO] [stderr] 1 | use rbatis::{crud_table, Timestamp};
[INFO] [stderr] | ^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: unused `#[macro_use]` import
[INFO] [stderr] --> crab-system/src/lib.rs:21:1
[INFO] [stderr] |
[INFO] [stderr] 21 | #[macro_use]
[INFO] [stderr] | ^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: unused `#[macro_use]` import
[INFO] [stderr] --> crab-system/src/lib.rs:23:1
[INFO] [stderr] |
[INFO] [stderr] 23 | #[macro_use]
[INFO] [stderr] | ^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: associated function is never used: `validate_captcha`
[INFO] [stderr] --> crab-system/src/service/sys_auth.rs:136:8
[INFO] [stderr] |
[INFO] [stderr] 136 | fn validate_captcha(_username: &str, code: &str, uuid: &str) -> Result<(), CrabError> {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: `#[warn(dead_code)]` on by default
[INFO] [stderr]
[INFO] [stderr] warning: function is never used: `file_type_by_name`
[INFO] [stderr] --> crab-system/src/common/utils/file/file_type.rs:12:10
[INFO] [stderr] |
[INFO] [stderr] 12 | async fn file_type_by_name(file_name: &str) -> &str {
[INFO] [stderr] | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: function is never used: `init_text`
[INFO] [stderr] --> crab-system/src/common/utils/html/escape.rs:6:4
[INFO] [stderr] |
[INFO] [stderr] 6 | fn init_text() -> [[char; 1]; 64] {
[INFO] [stderr] | ^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: unused variable: `excel_data`
[INFO] [stderr] --> crab-excel/tests/test.rs:89:9
[INFO] [stderr] |
[INFO] [stderr] 89 | let excel_data = wb.close().expect("close excel error!");
[INFO] [stderr] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_excel_data`
[INFO] [stderr] |
[INFO] [stderr] = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr]
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr] --> crab-excel/tests/test.rs:18:9
[INFO] [stderr] |
[INFO] [stderr] 18 | let mut format1 = workbook.add_format().set_font_color(FormatColor::Red);
[INFO] [stderr] | ----^^^^^^^
[INFO] [stderr] | |
[INFO] [stderr] | help: remove this `mut`
[INFO] [stderr] |
[INFO] [stderr] = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr]
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr] --> crab-excel/tests/test.rs:20:9
[INFO] [stderr] |
[INFO] [stderr] 20 | let mut format2 = workbook
[INFO] [stderr] | ----^^^^^^^
[INFO] [stderr] | |
[INFO] [stderr] | help: remove this `mut`
[INFO] [stderr]
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr] --> crab-excel/tests/test.rs:25:9
[INFO] [stderr] |
[INFO] [stderr] 25 | let mut format3 = workbook
[INFO] [stderr] | ----^^^^^^^
[INFO] [stderr] | |
[INFO] [stderr] | help: remove this `mut`
[INFO] [stderr]
[INFO] [stderr] warning: field is never read: `id`
[INFO] [stderr] --> crab-excel/tests/excel_writer.rs:7:5
[INFO] [stderr] |
[INFO] [stderr] 7 | id: u32,
[INFO] [stderr] | ^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] note: `TestExcel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] --> crab-excel/tests/excel_writer.rs:4:10
[INFO] [stderr] |
[INFO] [stderr] 4 | #[derive(Debug, Default, ExcelWriter)]
[INFO] [stderr] | ^^^^^
[INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]
[INFO] [stderr] warning: field is never read: `roles`
[INFO] [stderr] --> crab-excel/tests/excel_writer.rs:11:5
[INFO] [stderr] |
[INFO] [stderr] 11 | roles: Vec,
[INFO] [stderr] | ^^^^^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] note: `TestExcel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] --> crab-excel/tests/excel_writer.rs:4:10
[INFO] [stderr] |
[INFO] [stderr] 4 | #[derive(Debug, Default, ExcelWriter)]
[INFO] [stderr] | ^^^^^
[INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]
[INFO] [stderr] warning: field is never read: `del`
[INFO] [stderr] --> crab-excel/tests/excel_writer.rs:13:5
[INFO] [stderr] |
[INFO] [stderr] 13 | del: u8,
[INFO] [stderr] | ^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] note: `TestExcel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] --> crab-excel/tests/excel_writer.rs:4:10
[INFO] [stderr] |
[INFO] [stderr] 4 | #[derive(Debug, Default, ExcelWriter)]
[INFO] [stderr] | ^^^^^
[INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]
[INFO] [stderr] warning: field is never read: `date`
[INFO] [stderr] --> crab-excel/tests/excel_writer.rs:15:5
[INFO] [stderr] |
[INFO] [stderr] 15 | date: u128,
[INFO] [stderr] | ^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] note: `TestExcel` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stderr] --> crab-excel/tests/excel_writer.rs:4:10
[INFO] [stderr] |
[INFO] [stderr] 4 | #[derive(Debug, Default, ExcelWriter)]
[INFO] [stderr] | ^^^^^
[INFO] [stderr] = note: this warning originates in the derive macro `Debug` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]
[INFO] [stderr] warning: unused `Result` that must be used
[INFO] [stderr] --> crab-excel/tests/excel_writer.rs:4:26
[INFO] [stderr] |
[INFO] [stderr] 4 | #[derive(Debug, Default, ExcelWriter)]
[INFO] [stderr] | ^^^^^^^^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr] = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] = note: this warning originates in the derive macro `ExcelWriter` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr]
[INFO] [stderr] warning: `crab-system` (lib) generated 8 warnings
[INFO] [stderr] warning: `crab-excel` (test "test") generated 4 warnings
[INFO] [stderr] warning: `crab-system` (lib test) generated 8 warnings (8 duplicates)
[INFO] [stderr] warning: `crab-excel` (test "excel_writer") generated 5 warnings
[INFO] [stderr] warning: unused import: `Json`
[INFO] [stderr] --> crab-admin/src/tool_gen.rs:4:11
[INFO] [stderr] |
[INFO] [stderr] 4 | web::{Json, Query},
[INFO] [stderr] | ^^^^
[INFO] [stderr] |
[INFO] [stderr] = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr]
[INFO] [stderr] warning: associated function is never used: `new`
[INFO] [stderr] --> crab-admin/src/result.rs:59:12
[INFO] [stderr] |
[INFO] [stderr] 59 | pub fn new() -> Self {
[INFO] [stderr] | ^^^
[INFO] [stderr] |
[INFO] [stderr] = note: `#[warn(dead_code)]` on by default
[INFO] [stderr]
[INFO] [stderr] warning: associated function is never used: `fail`
[INFO] [stderr] --> crab-admin/src/result.rs:79:12
[INFO] [stderr] |
[INFO] [stderr] 79 | pub fn fail() -> Self {
[INFO] [stderr] | ^^^^
[INFO] [stderr]
[INFO] [stderr] warning: associated function is never used: `with_code`
[INFO] [stderr] --> crab-admin/src/result.rs:89:12
[INFO] [stderr] |
[INFO] [stderr] 89 | pub fn with_code(mut self, code: u32) -> Self {
[INFO] [stderr] | ^^^^^^^^^
[INFO] [stderr]
[INFO] [stderr] warning: `crab-admin` (bin "crab-admin" test) generated 4 warnings
[INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.14s
[INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/crab_admin-6ea55858448e7170)
[INFO] [stdout]
[INFO] [stdout] running 0 tests
[INFO] [stdout]
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout]
[INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/crab_excel-f1b7e7dc70994a99)
[INFO] [stdout]
[INFO] [stdout] running 0 tests
[INFO] [stdout]
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout]
[INFO] [stderr] Running tests/excel_writer.rs (/opt/rustwide/target/debug/deps/excel_writer-cc8b536cb0a85473)
[INFO] [stdout]
[INFO] [stdout] running 1 test
[INFO] [stderr] thread panicked while panicking. aborting.
[INFO] [stderr] error: test failed, to rerun pass '-p crab-excel --test excel_writer'
[INFO] [stderr]
[INFO] [stderr] Caused by:
[INFO] [stderr] process didn't exit successfully: `/opt/rustwide/target/debug/deps/excel_writer-cc8b536cb0a85473` (signal: 6, SIGABRT: process abort signal)
[INFO] running `Command { std: "docker" "inspect" "0bb5390a0fb3b205dff0f3b9f07dca9957a2c9decbbc3166ae3eb0708f9c3827", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0bb5390a0fb3b205dff0f3b9f07dca9957a2c9decbbc3166ae3eb0708f9c3827", kill_on_drop: false }`
[INFO] [stdout] 0bb5390a0fb3b205dff0f3b9f07dca9957a2c9decbbc3166ae3eb0708f9c3827