difftreelog
Merge pull request #118 from CertainLach/feature/upstream-std-sync
in: master
11 files changed
Cargo.lockdiffbeforeafterboth23 "yansi-term",23 "yansi-term",24]24]2526[[package]]27name = "anstream"28version = "0.3.2"29source = "registry+https://github.com/rust-lang/crates.io-index"30checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"31dependencies = [32 "anstyle",33 "anstyle-parse",34 "anstyle-query",35 "anstyle-wincon",36 "colorchoice",37 "is-terminal",38 "utf8parse",39]4041[[package]]42name = "anstyle"43version = "1.0.1"44source = "registry+https://github.com/rust-lang/crates.io-index"45checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd"4647[[package]]48name = "anstyle-parse"49version = "0.2.1"50source = "registry+https://github.com/rust-lang/crates.io-index"51checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333"52dependencies = [53 "utf8parse",54]5556[[package]]57name = "anstyle-query"58version = "1.0.0"59source = "registry+https://github.com/rust-lang/crates.io-index"60checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b"61dependencies = [62 "windows-sys",63]6465[[package]]66name = "anstyle-wincon"67version = "1.0.1"68source = "registry+https://github.com/rust-lang/crates.io-index"69checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"70dependencies = [71 "anstyle",72 "windows-sys",73]257426[[package]]75[[package]]27name = "anyhow"76name = "anyhow"28version = "1.0.69"77version = "1.0.72"29source = "registry+https://github.com/rust-lang/crates.io-index"78source = "registry+https://github.com/rust-lang/crates.io-index"30checksum = "224afbd727c3d6e4b90103ece64b8d1b67fbb1973b1046c2281eed3f3803f800"79checksum = "3b13c32d80ecc7ab747b80c3784bce54ee8a7a0cc4fbda9bf4cda2cf6fe90854"318032[[package]]81[[package]]33name = "async-trait"82name = "async-trait"34version = "0.1.64"83version = "0.1.71"35source = "registry+https://github.com/rust-lang/crates.io-index"84source = "registry+https://github.com/rust-lang/crates.io-index"36checksum = "1cd7fce9ba8c3c042128ce72d8b2ddbf3a05747efb67ea0313c635e10bda47a2"85checksum = "a564d521dd56509c4c47480d00b80ee55f7e385ae48db5744c67ad50c92d2ebf"37dependencies = [86dependencies = [38 "proc-macro2",87 "proc-macro2",39 "quote",88 "quote",40 "syn",89 "syn 2.0.26",41]90]429143[[package]]92[[package]]489749[[package]]98[[package]]50name = "base64"99name = "base64"51version = "0.21.0"100version = "0.21.2"52source = "registry+https://github.com/rust-lang/crates.io-index"101source = "registry+https://github.com/rust-lang/crates.io-index"53checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"102checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d"5410355[[package]]104[[package]]56name = "bincode"105name = "bincode"67source = "registry+https://github.com/rust-lang/crates.io-index"116source = "registry+https://github.com/rust-lang/crates.io-index"68checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"117checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"118119[[package]]120name = "bitflags"121version = "2.3.3"122source = "registry+https://github.com/rust-lang/crates.io-index"123checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42"6912470[[package]]125[[package]]71name = "block-buffer"126name = "block-buffer"72version = "0.10.3"127version = "0.10.4"73source = "registry+https://github.com/rust-lang/crates.io-index"128source = "registry+https://github.com/rust-lang/crates.io-index"74checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"129checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"75dependencies = [130dependencies = [76 "generic-array",131 "generic-array",77]132]9014591[[package]]146[[package]]92name = "clap"147name = "clap"93version = "4.1.6"148version = "4.3.12"94source = "registry+https://github.com/rust-lang/crates.io-index"149source = "registry+https://github.com/rust-lang/crates.io-index"95checksum = "ec0b0588d44d4d63a87dbd75c136c166bbfd9a86a31cb89e09906521c7d3f5e3"150checksum = "3eab9e8ceb9afdade1ab3f0fd8dbce5b1b2f468ad653baf10e771781b2b67b73"96dependencies = [151dependencies = [97 "bitflags",152 "clap_builder",98 "clap_derive",153 "clap_derive",99 "clap_lex",100 "is-terminal",101 "once_cell",154 "once_cell",102 "strsim",103 "termcolor",104]155]156157[[package]]158name = "clap_builder"159version = "4.3.12"160source = "registry+https://github.com/rust-lang/crates.io-index"161checksum = "9f2763db829349bf00cfc06251268865ed4363b93a943174f638daf3ecdba2cd"162dependencies = [163 "anstream",164 "anstyle",165 "clap_lex",166 "strsim",167]105168106[[package]]169[[package]]107name = "clap_complete"170name = "clap_complete"108version = "4.1.3"171version = "4.3.2"109source = "registry+https://github.com/rust-lang/crates.io-index"172source = "registry+https://github.com/rust-lang/crates.io-index"110checksum = "0012995dc3a54314f4710f5631d74767e73c534b8757221708303e48eef7a19b"173checksum = "5fc443334c81a804575546c5a8a79b4913b50e28d69232903604cada1de817ce"111dependencies = [174dependencies = [112 "clap",175 "clap",113]176]114177115[[package]]178[[package]]116name = "clap_derive"179name = "clap_derive"117version = "4.1.0"180version = "4.3.12"118source = "registry+https://github.com/rust-lang/crates.io-index"181source = "registry+https://github.com/rust-lang/crates.io-index"119checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8"182checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050"120dependencies = [183dependencies = [121 "heck",184 "heck",122 "proc-macro-error",123 "proc-macro2",185 "proc-macro2",124 "quote",186 "quote",125 "syn",187 "syn 2.0.26",126]188]127189128[[package]]190[[package]]129name = "clap_lex"191name = "clap_lex"130version = "0.3.2"192version = "0.5.0"131source = "registry+https://github.com/rust-lang/crates.io-index"193source = "registry+https://github.com/rust-lang/crates.io-index"132checksum = "350b9cf31731f9957399229e9b2adc51eeabdfbe9d71d9a0552275fd12710d09"194checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b"195196[[package]]133dependencies = [197name = "colorchoice"134 "os_str_bytes",198version = "1.0.0"135]199source = "registry+https://github.com/rust-lang/crates.io-index"200checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"136201137[[package]]202[[package]]138name = "cpufeatures"203name = "cpufeatures"139version = "0.2.5"204version = "0.2.9"140source = "registry+https://github.com/rust-lang/crates.io-index"205source = "registry+https://github.com/rust-lang/crates.io-index"141checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"206checksum = "a17b76ff3a4162b0b27f354a0c87015ddad39d35f9c0c36607a3bdd175dde1f1"142dependencies = [207dependencies = [143 "libc",208 "libc",144]209]155220156[[package]]221[[package]]157name = "digest"222name = "digest"158version = "0.10.6"223version = "0.10.7"159source = "registry+https://github.com/rust-lang/crates.io-index"224source = "registry+https://github.com/rust-lang/crates.io-index"160checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"225checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"161dependencies = [226dependencies = [162 "block-buffer",227 "block-buffer",163 "crypto-common",228 "crypto-common",164]229]165230166[[package]]231[[package]]167name = "errno"232name = "errno"168version = "0.2.8"233version = "0.3.1"169source = "registry+https://github.com/rust-lang/crates.io-index"234source = "registry+https://github.com/rust-lang/crates.io-index"170checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"235checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"171dependencies = [236dependencies = [172 "errno-dragonfly",237 "errno-dragonfly",173 "libc",238 "libc",174 "winapi",239 "windows-sys",175]240]176241177[[package]]242[[package]]186251187[[package]]252[[package]]188name = "generic-array"253name = "generic-array"189version = "0.14.6"254version = "0.14.7"190source = "registry+https://github.com/rust-lang/crates.io-index"255source = "registry+https://github.com/rust-lang/crates.io-index"191checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"256checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"192dependencies = [257dependencies = [193 "typenum",258 "typenum",194 "version_check",259 "version_check",217282218[[package]]283[[package]]219name = "hermit-abi"284name = "hermit-abi"220version = "0.3.1"285version = "0.3.2"221source = "registry+https://github.com/rust-lang/crates.io-index"286source = "registry+https://github.com/rust-lang/crates.io-index"222checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"287checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b"223288224[[package]]289[[package]]225name = "indexmap"290name = "indexmap"226version = "1.9.2"291version = "1.9.3"227source = "registry+https://github.com/rust-lang/crates.io-index"292source = "registry+https://github.com/rust-lang/crates.io-index"228checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399"293checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"229dependencies = [294dependencies = [230 "autocfg",295 "autocfg",231 "hashbrown 0.12.3",296 "hashbrown 0.12.3",232]297]233234[[package]]235name = "io-lifetimes"236version = "1.0.5"237source = "registry+https://github.com/rust-lang/crates.io-index"238checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3"239dependencies = [240 "libc",241 "windows-sys",242]243298244[[package]]299[[package]]245name = "is-terminal"300name = "is-terminal"246version = "0.4.4"301version = "0.4.9"247source = "registry+https://github.com/rust-lang/crates.io-index"302source = "registry+https://github.com/rust-lang/crates.io-index"248checksum = "21b6b32576413a8e69b90e952e4a026476040d81017b80445deda5f2d3921857"303checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b"249dependencies = [304dependencies = [250 "hermit-abi",305 "hermit-abi",251 "io-lifetimes",252 "rustix",306 "rustix",253 "windows-sys",307 "windows-sys",254]308]255309256[[package]]310[[package]]257name = "itoa"311name = "itoa"258version = "1.0.5"312version = "1.0.9"259source = "registry+https://github.com/rust-lang/crates.io-index"313source = "registry+https://github.com/rust-lang/crates.io-index"260checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"314checksum = "af150ab688ff2122fcef229be89cb50dd66af9e01a4ff320cc137eecc9bacc38"261315262[[package]]316[[package]]263name = "jrsonnet"317name = "jrsonnet"325dependencies = [379dependencies = [326 "proc-macro2",380 "proc-macro2",327 "quote",381 "quote",328 "syn",382 "syn 1.0.109",329]383]330384331[[package]]385[[package]]345dependencies = [399dependencies = [346 "proc-macro2",400 "proc-macro2",347 "quote",401 "quote",348 "syn",402 "syn 1.0.109",349]403]350404351[[package]]405[[package]]375 "serde",429 "serde",376 "serde_json",430 "serde_json",377 "serde_yaml_with_quirks",431 "serde_yaml_with_quirks",432 "sha1",378 "sha2",433 "sha2",434 "sha3",379 "structdump",435 "structdump",380]436]381437387 "peg",443 "peg",388]444]445446[[package]]447name = "keccak"448version = "0.1.4"449source = "registry+https://github.com/rust-lang/crates.io-index"450checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940"451dependencies = [452 "cpufeatures",453]389454390[[package]]455[[package]]391name = "libc"456name = "libc"392version = "0.2.139"457version = "0.2.147"393source = "registry+https://github.com/rust-lang/crates.io-index"458source = "registry+https://github.com/rust-lang/crates.io-index"394checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"459checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"395460396[[package]]461[[package]]397name = "libjsonnet"462name = "libjsonnet"411476412[[package]]477[[package]]413name = "linux-raw-sys"478name = "linux-raw-sys"414version = "0.1.4"479version = "0.4.3"415source = "registry+https://github.com/rust-lang/crates.io-index"480source = "registry+https://github.com/rust-lang/crates.io-index"416checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"481checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0"417482418[[package]]483[[package]]419name = "lock_api"484name = "lock_api"420version = "0.4.9"485version = "0.4.10"421source = "registry+https://github.com/rust-lang/crates.io-index"486source = "registry+https://github.com/rust-lang/crates.io-index"422checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"487checksum = "c1cc9717a20b1bb222f333e6a92fd32f7d8a18ddc5a3191a11af45dcbf4dcd16"423dependencies = [488dependencies = [424 "autocfg",489 "autocfg",425 "scopeguard",490 "scopeguard",483548484[[package]]549[[package]]485name = "once_cell"550name = "once_cell"486version = "1.17.1"551version = "1.18.0"487source = "registry+https://github.com/rust-lang/crates.io-index"552source = "registry+https://github.com/rust-lang/crates.io-index"488checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"553checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"489490[[package]]491name = "os_str_bytes"492version = "6.4.1"493source = "registry+https://github.com/rust-lang/crates.io-index"494checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"495554496[[package]]555[[package]]497name = "parking_lot"556name = "parking_lot"505564506[[package]]565[[package]]507name = "parking_lot_core"566name = "parking_lot_core"508version = "0.9.7"567version = "0.9.8"509source = "registry+https://github.com/rust-lang/crates.io-index"568source = "registry+https://github.com/rust-lang/crates.io-index"510checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"569checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447"511dependencies = [570dependencies = [512 "cfg-if",571 "cfg-if",513 "libc",572 "libc",514 "redox_syscall",573 "redox_syscall",515 "smallvec",574 "smallvec",516 "windows-sys",575 "windows-targets",517]576]518577519[[package]]578[[package]]549source = "registry+https://github.com/rust-lang/crates.io-index"608source = "registry+https://github.com/rust-lang/crates.io-index"550checksum = "9fa00462b37ead6d11a82c9d568b26682d78e0477dc02d1966c013af80969739"609checksum = "9fa00462b37ead6d11a82c9d568b26682d78e0477dc02d1966c013af80969739"551552[[package]]553name = "proc-macro-error"554version = "1.0.4"555source = "registry+https://github.com/rust-lang/crates.io-index"556checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c"557dependencies = [558 "proc-macro-error-attr",559 "proc-macro2",560 "quote",561 "syn",562 "version_check",563]564565[[package]]566name = "proc-macro-error-attr"567version = "1.0.4"568source = "registry+https://github.com/rust-lang/crates.io-index"569checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869"570dependencies = [571 "proc-macro2",572 "quote",573 "version_check",574]575610576[[package]]611[[package]]577name = "proc-macro2"612name = "proc-macro2"578version = "1.0.51"613version = "1.0.65"579source = "registry+https://github.com/rust-lang/crates.io-index"614source = "registry+https://github.com/rust-lang/crates.io-index"580checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6"615checksum = "92de25114670a878b1261c79c9f8f729fb97e95bac93f6312f583c60dd6a1dfe"581dependencies = [616dependencies = [582 "unicode-ident",617 "unicode-ident",583]618]584619585[[package]]620[[package]]586name = "quote"621name = "quote"587version = "1.0.23"622version = "1.0.30"588source = "registry+https://github.com/rust-lang/crates.io-index"623source = "registry+https://github.com/rust-lang/crates.io-index"589checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"624checksum = "5907a1b7c277254a8b15170f6e7c97cfa60ee7872a3217663bb81151e48184bb"590dependencies = [625dependencies = [591 "proc-macro2",626 "proc-macro2",592]627]593628594[[package]]629[[package]]595name = "redox_syscall"630name = "redox_syscall"596version = "0.2.16"631version = "0.3.5"597source = "registry+https://github.com/rust-lang/crates.io-index"632source = "registry+https://github.com/rust-lang/crates.io-index"598checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"633checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"599dependencies = [634dependencies = [600 "bitflags",635 "bitflags 1.3.2",601]636]602637603[[package]]638[[package]]608643609[[package]]644[[package]]610name = "rustix"645name = "rustix"611version = "0.36.8"646version = "0.38.4"612source = "registry+https://github.com/rust-lang/crates.io-index"647source = "registry+https://github.com/rust-lang/crates.io-index"613checksum = "f43abb88211988493c1abb44a70efa56ff0ce98f233b7b276146f1f3f7ba9644"648checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5"614dependencies = [649dependencies = [615 "bitflags",650 "bitflags 2.3.3",616 "errno",651 "errno",617 "io-lifetimes",618 "libc",652 "libc",619 "linux-raw-sys",653 "linux-raw-sys",620 "windows-sys",654 "windows-sys",621]655]622656623[[package]]657[[package]]624name = "ryu"658name = "ryu"625version = "1.0.12"659version = "1.0.15"626source = "registry+https://github.com/rust-lang/crates.io-index"660source = "registry+https://github.com/rust-lang/crates.io-index"627checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"661checksum = "1ad4cc8da4ef723ed60bced201181d83791ad433213d8c24efffda1eec85d741"628662629[[package]]663[[package]]630name = "scopeguard"664name = "scopeguard"634668635[[package]]669[[package]]636name = "serde"670name = "serde"637version = "1.0.152"671version = "1.0.171"638source = "registry+https://github.com/rust-lang/crates.io-index"672source = "registry+https://github.com/rust-lang/crates.io-index"639checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"673checksum = "30e27d1e4fd7659406c492fd6cfaf2066ba8773de45ca75e855590f856dc34a9"640dependencies = [674dependencies = [641 "serde_derive",675 "serde_derive",642]676]643677644[[package]]678[[package]]645name = "serde_derive"679name = "serde_derive"646version = "1.0.152"680version = "1.0.171"647source = "registry+https://github.com/rust-lang/crates.io-index"681source = "registry+https://github.com/rust-lang/crates.io-index"648checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"682checksum = "389894603bd18c46fa56231694f8d827779c0951a667087194cf9de94ed24682"649dependencies = [683dependencies = [650 "proc-macro2",684 "proc-macro2",651 "quote",685 "quote",652 "syn",686 "syn 2.0.26",653]687]654688655[[package]]689[[package]]656name = "serde_json"690name = "serde_json"657version = "1.0.93"691version = "1.0.103"658source = "registry+https://github.com/rust-lang/crates.io-index"692source = "registry+https://github.com/rust-lang/crates.io-index"659checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"693checksum = "d03b412469450d4404fe8499a268edd7f8b79fecb074b0d812ad64ca21f4031b"660dependencies = [694dependencies = [661 "itoa",695 "itoa",662 "ryu",696 "ryu",675 "yaml-rust",709 "yaml-rust",676]710]711712[[package]]713name = "sha1"714version = "0.10.5"715source = "registry+https://github.com/rust-lang/crates.io-index"716checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"717dependencies = [718 "cfg-if",719 "cpufeatures",720 "digest",721]677722678[[package]]723[[package]]679name = "sha2"724name = "sha2"680version = "0.10.6"725version = "0.10.7"681source = "registry+https://github.com/rust-lang/crates.io-index"726source = "registry+https://github.com/rust-lang/crates.io-index"682checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"727checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"683dependencies = [728dependencies = [684 "cfg-if",729 "cfg-if",685 "cpufeatures",730 "cpufeatures",686 "digest",731 "digest",687]732]733734[[package]]735name = "sha3"736version = "0.10.8"737source = "registry+https://github.com/rust-lang/crates.io-index"738checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"739dependencies = [740 "digest",741 "keccak",742]688743689[[package]]744[[package]]690name = "smallvec"745name = "smallvec"691version = "1.10.0"746version = "1.11.0"692source = "registry+https://github.com/rust-lang/crates.io-index"747source = "registry+https://github.com/rust-lang/crates.io-index"693checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"748checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"694749695[[package]]750[[package]]696name = "static_assertions"751name = "static_assertions"723dependencies = [778dependencies = [724 "proc-macro2",779 "proc-macro2",725 "quote",780 "quote",726 "syn",781 "syn 1.0.109",727]782]728783729[[package]]784[[package]]738]793]739794740[[package]]795[[package]]741name = "termcolor"796name = "syn"742version = "1.2.0"797version = "2.0.26"743source = "registry+https://github.com/rust-lang/crates.io-index"798source = "registry+https://github.com/rust-lang/crates.io-index"744checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"799checksum = "45c3457aacde3c65315de5031ec191ce46604304d2446e803d71ade03308d970"745dependencies = [800dependencies = [801 "proc-macro2",802 "quote",746 "winapi-util",803 "unicode-ident",747]804]748805749[[package]]806[[package]]758815759[[package]]816[[package]]760name = "thiserror"817name = "thiserror"761version = "1.0.38"818version = "1.0.43"762source = "registry+https://github.com/rust-lang/crates.io-index"819source = "registry+https://github.com/rust-lang/crates.io-index"763checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"820checksum = "a35fc5b8971143ca348fa6df4f024d4d55264f3468c71ad1c2f365b0a4d58c42"764dependencies = [821dependencies = [765 "thiserror-impl",822 "thiserror-impl",766]823]767824768[[package]]825[[package]]769name = "thiserror-impl"826name = "thiserror-impl"770version = "1.0.38"827version = "1.0.43"771source = "registry+https://github.com/rust-lang/crates.io-index"828source = "registry+https://github.com/rust-lang/crates.io-index"772checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"829checksum = "463fe12d7993d3b327787537ce8dd4dfa058de32fc2b195ef3cde03dc4771e8f"773dependencies = [830dependencies = [774 "proc-macro2",831 "proc-macro2",775 "quote",832 "quote",776 "syn",833 "syn 2.0.26",777]834]778835779[[package]]836[[package]]784841785[[package]]842[[package]]786name = "unicode-ident"843name = "unicode-ident"787version = "1.0.6"844version = "1.0.11"788source = "registry+https://github.com/rust-lang/crates.io-index"845source = "registry+https://github.com/rust-lang/crates.io-index"789checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"846checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"790847791[[package]]848[[package]]792name = "unicode-width"849name = "unicode-width"793version = "0.1.10"850version = "0.1.10"794source = "registry+https://github.com/rust-lang/crates.io-index"851source = "registry+https://github.com/rust-lang/crates.io-index"795checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"852checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"853854[[package]]855name = "utf8parse"856version = "0.2.1"857source = "registry+https://github.com/rust-lang/crates.io-index"858checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"796859797[[package]]860[[package]]798name = "version_check"861name = "version_check"816source = "registry+https://github.com/rust-lang/crates.io-index"879source = "registry+https://github.com/rust-lang/crates.io-index"817checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"880checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"818819[[package]]820name = "winapi-util"821version = "0.1.5"822source = "registry+https://github.com/rust-lang/crates.io-index"823checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"824dependencies = [825 "winapi",826]827881828[[package]]882[[package]]829name = "winapi-x86_64-pc-windows-gnu"883name = "winapi-x86_64-pc-windows-gnu"833887834[[package]]888[[package]]835name = "windows-sys"889name = "windows-sys"836version = "0.45.0"890version = "0.48.0"837source = "registry+https://github.com/rust-lang/crates.io-index"891source = "registry+https://github.com/rust-lang/crates.io-index"838checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"892checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"839dependencies = [893dependencies = [840 "windows-targets",894 "windows-targets",841]895]842896843[[package]]897[[package]]844name = "windows-targets"898name = "windows-targets"845version = "0.42.1"899version = "0.48.1"846source = "registry+https://github.com/rust-lang/crates.io-index"900source = "registry+https://github.com/rust-lang/crates.io-index"847checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"901checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f"848dependencies = [902dependencies = [849 "windows_aarch64_gnullvm",903 "windows_aarch64_gnullvm",850 "windows_aarch64_msvc",904 "windows_aarch64_msvc",857911858[[package]]912[[package]]859name = "windows_aarch64_gnullvm"913name = "windows_aarch64_gnullvm"860version = "0.42.1"914version = "0.48.0"861source = "registry+https://github.com/rust-lang/crates.io-index"915source = "registry+https://github.com/rust-lang/crates.io-index"862checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"916checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"863917864[[package]]918[[package]]865name = "windows_aarch64_msvc"919name = "windows_aarch64_msvc"866version = "0.42.1"920version = "0.48.0"867source = "registry+https://github.com/rust-lang/crates.io-index"921source = "registry+https://github.com/rust-lang/crates.io-index"868checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"922checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"869923870[[package]]924[[package]]871name = "windows_i686_gnu"925name = "windows_i686_gnu"872version = "0.42.1"926version = "0.48.0"873source = "registry+https://github.com/rust-lang/crates.io-index"927source = "registry+https://github.com/rust-lang/crates.io-index"874checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"928checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"875929876[[package]]930[[package]]877name = "windows_i686_msvc"931name = "windows_i686_msvc"878version = "0.42.1"932version = "0.48.0"879source = "registry+https://github.com/rust-lang/crates.io-index"933source = "registry+https://github.com/rust-lang/crates.io-index"880checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"934checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"881935882[[package]]936[[package]]883name = "windows_x86_64_gnu"937name = "windows_x86_64_gnu"884version = "0.42.1"938version = "0.48.0"885source = "registry+https://github.com/rust-lang/crates.io-index"939source = "registry+https://github.com/rust-lang/crates.io-index"886checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"940checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1"887941888[[package]]942[[package]]889name = "windows_x86_64_gnullvm"943name = "windows_x86_64_gnullvm"890version = "0.42.1"944version = "0.48.0"891source = "registry+https://github.com/rust-lang/crates.io-index"945source = "registry+https://github.com/rust-lang/crates.io-index"892checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"946checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"893947894[[package]]948[[package]]895name = "windows_x86_64_msvc"949name = "windows_x86_64_msvc"896version = "0.42.1"950version = "0.48.0"897source = "registry+https://github.com/rust-lang/crates.io-index"951source = "registry+https://github.com/rust-lang/crates.io-index"898checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"952checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"899953900[[package]]954[[package]]901name = "yaml-rust"955name = "yaml-rust"crates/jrsonnet-stdlib/Cargo.tomldiffbeforeafterboth323233# std.md533# std.md534md5 = "0.7.0"34md5 = "0.7.0"35# std.sha136sha1 = "0.10.5"35# std.sha256, std.sha51237# std.sha256, std.sha51236sha2 = "0.10.6"38sha2 = "0.10.6"39# std.sha340sha3 = "0.10.8"37# std.base6441# std.base6438base64 = "0.21.0"42base64 = "0.21.0"39# std.parseJson43# std.parseJsoncrates/jrsonnet-stdlib/src/arrays.rsdiffbeforeafterboth1#![allow(non_snake_case)]21use jrsonnet_evaluator::{3use jrsonnet_evaluator::{2 error::{ErrorKind::RuntimeError, Result},4 error::{ErrorKind::RuntimeError, Result},3 function::{builtin, FuncVal},5 function::{builtin, FuncVal},4 throw,6 throw,5 typed::{BoundedI32, BoundedUsize, Either2, NativeFn, Typed},7 typed::{BoundedI32, BoundedUsize, Either2, NativeFn, Typed},6 val::{equals, ArrValue, IndexableVal, StrValue},8 val::{equals, ArrValue, IndexableVal, StrValue},7 Either, IStr, Val,9 Either, IStr, Thunk, Val,8};10};1112pub(crate) fn eval_on_empty(on_empty: Option<Thunk<Val>>) -> Result<Val> {13 if let Some(on_empty) = on_empty {14 on_empty.evaluate()15 } else {16 throw!("expected non-empty array")17 }18}91910#[builtin]20#[builtin]11pub fn builtin_make_array(sz: BoundedI32<0, { i32::MAX }>, func: FuncVal) -> Result<ArrValue> {21pub fn builtin_make_array(sz: BoundedI32<0, { i32::MAX }>, func: FuncVal) -> Result<ArrValue> {220 }230 }221}231}232233#[builtin]234pub fn builtin_contains(arr: IndexableVal, elem: Val) -> Result<bool> {235 builtin_member(arr, elem)236}222237223#[builtin]238#[builtin]224pub fn builtin_count(arr: ArrValue, x: Val) -> Result<usize> {239pub fn builtin_count(arr: ArrValue, x: Val) -> Result<usize> {231 Ok(count)246 Ok(count)232}247}248249#[builtin]250pub fn builtin_avg(arr: Vec<f64>, onEmpty: Option<Thunk<Val>>) -> Result<Val> {251 if arr.is_empty() {252 return eval_on_empty(onEmpty);253 }254 Ok(Val::Num(arr.iter().sum::<f64>() / (arr.len() as f64)))255}256257#[builtin]258pub fn builtin_remove_at(259 arr: ArrValue,260 index: usize,261) -> Result<ArrValue> {262 let newArrLeft = arr.clone().slice(None, Some(index), None);263 let newArrRight = arr.slice(Some(index + 1), None, None);264 265 Ok(ArrValue::extended(266 newArrLeft.unwrap_or(ArrValue::empty()),267 newArrRight.unwrap_or(ArrValue::empty()))268 )269}270271#[builtin]272pub fn builtin_remove(arr: ArrValue, elem: Val) -> Result<ArrValue> {273 for (index, item) in arr.iter().enumerate() {274 if equals(&item?, &elem)? {275 return builtin_remove_at(arr.clone(), index) 276 }277 }278 Ok(arr)279}233280crates/jrsonnet-stdlib/src/hash.rsdiffbeforeafterboth17 format!("{:x}", sha2::Sha512::digest(s.as_bytes()))17 format!("{:x}", sha2::Sha512::digest(s.as_bytes()))18}18}1920#[builtin]21pub fn builtin_sha1(s: IStr) -> String {22 use sha1::digest::Digest;23 format!("{:x}", sha1::Sha1::digest(s.as_bytes()))24}2526#[builtin]27pub fn builtin_sha3(s: IStr) -> String {28 use sha3::digest::Digest;29 format!("{:x}", sha3::Sha3_512::digest(s.as_bytes()))30}1931crates/jrsonnet-stdlib/src/lib.rsdiffbeforeafterboth80 ("any", builtin_any::INST),80 ("any", builtin_any::INST),81 ("all", builtin_all::INST),81 ("all", builtin_all::INST),82 ("member", builtin_member::INST),82 ("member", builtin_member::INST),83 ("contains", builtin_member::INST),83 ("count", builtin_count::INST),84 ("count", builtin_count::INST),85 ("avg", builtin_avg::INST),86 ("removeAt", builtin_remove_at::INST),87 ("remove", builtin_remove::INST),84 // Math88 // Math85 ("abs", builtin_abs::INST),89 ("abs", builtin_abs::INST),86 ("sign", builtin_sign::INST),90 ("sign", builtin_sign::INST),102 ("exp", builtin_exp::INST),106 ("exp", builtin_exp::INST),103 ("mantissa", builtin_mantissa::INST),107 ("mantissa", builtin_mantissa::INST),104 ("exponent", builtin_exponent::INST),108 ("exponent", builtin_exponent::INST),109 ("round", builtin_round::INST),110 ("isEven", builtin_is_even::INST),111 ("isOdd", builtin_is_odd::INST),112 ("isInteger", builtin_is_integer::INST),113 ("isDecimal", builtin_is_decimal::INST),105 // Operator114 // Operator106 ("mod", builtin_mod::INST),115 ("mod", builtin_mod::INST),107 ("primitiveEquals", builtin_primitive_equals::INST),116 ("primitiveEquals", builtin_primitive_equals::INST),108 ("equals", builtin_equals::INST),117 ("equals", builtin_equals::INST),109 ("xor", builtin_xor::INST),118 ("xor", builtin_xor::INST),119 ("xnor", builtin_xnor::INST),110 ("format", builtin_format::INST),120 ("format", builtin_format::INST),111 // Sort121 // Sort112 ("sort", builtin_sort::INST),122 ("sort", builtin_sort::INST),113 ("uniq", builtin_uniq::INST),123 ("uniq", builtin_uniq::INST),114 ("set", builtin_set::INST),124 ("set", builtin_set::INST),125 ("minArray", builtin_min_array::INST),126 ("maxArray", builtin_max_array::INST),115 // Hash127 // Hash116 ("md5", builtin_md5::INST),128 ("md5", builtin_md5::INST),129 ("sha1", builtin_sha1::INST),117 ("sha256", builtin_sha256::INST),130 ("sha256", builtin_sha256::INST),118 ("sha512", builtin_sha512::INST),131 ("sha512", builtin_sha512::INST),132 ("sha3", builtin_sha3::INST),119 // Encoding133 // Encoding120 ("encodeUTF8", builtin_encode_utf8::INST),134 ("encodeUTF8", builtin_encode_utf8::INST),121 ("decodeUTF8", builtin_decode_utf8::INST),135 ("decodeUTF8", builtin_decode_utf8::INST),125 // Objects139 // Objects126 ("objectFieldsEx", builtin_object_fields_ex::INST),140 ("objectFieldsEx", builtin_object_fields_ex::INST),127 ("objectHasEx", builtin_object_has_ex::INST),141 ("objectHasEx", builtin_object_has_ex::INST),142 ("objectRemoveKey", builtin_object_remove_key::INST),128 // Manifest143 // Manifest129 ("escapeStringJson", builtin_escape_string_json::INST),144 ("escapeStringJson", builtin_escape_string_json::INST),130 ("manifestJsonEx", builtin_manifest_json_ex::INST),145 ("manifestJsonEx", builtin_manifest_json_ex::INST),138 ("substr", builtin_substr::INST),153 ("substr", builtin_substr::INST),139 ("char", builtin_char::INST),154 ("char", builtin_char::INST),140 ("strReplace", builtin_str_replace::INST),155 ("strReplace", builtin_str_replace::INST),156 ("isEmpty", builtin_is_empty::INST),157 ("equalsIgnoreCase", builtin_equals_ignore_case::INST),141 ("splitLimit", builtin_splitlimit::INST),158 ("splitLimit", builtin_splitlimit::INST),142 ("asciiUpper", builtin_ascii_upper::INST),159 ("asciiUpper", builtin_ascii_upper::INST),143 ("asciiLower", builtin_ascii_lower::INST),160 ("asciiLower", builtin_ascii_lower::INST),crates/jrsonnet-stdlib/src/math.rsdiffbeforeafterboth115 frexp(x).1115 frexp(x).1116}116}117118#[builtin]119pub fn builtin_round(x: f64) -> f64 {120 x.round()121}122123#[builtin]124pub fn builtin_is_even(x: f64) -> bool {125 builtin_round(x) % 2.0 == 0.0126}127128#[builtin]129pub fn builtin_is_odd(x: f64) -> bool {130 builtin_round(x) % 2.0 == 1.0131}132133#[builtin]134pub fn builtin_is_integer(x: f64) -> bool {135 builtin_round(x) == x136}137138#[builtin]139pub fn builtin_is_decimal(x: f64) -> bool {140 builtin_round(x) != x141}117142crates/jrsonnet-stdlib/src/objects.rsdiffbeforeafterboth1use jrsonnet_evaluator::{1use jrsonnet_evaluator::{2 function::builtin,2 function::builtin,3 val::{StrValue, Val},3 val::{StrValue, Val},4 IStr, ObjValue,4 IStr, ObjValue, ObjValueBuilder,5};5};66728 obj.has_field_ex(fname, hidden)29 obj.has_field_ex(fname, hidden)29}30}3132#[builtin]33pub fn builtin_object_remove_key(obj: ObjValue, key: IStr) -> ObjValue {34 let mut new_obj = ObjValueBuilder::with_capacity(obj.len() - 1);35 for (k, v) in obj.iter() {36 if k == key {37 continue38 }39 new_obj.member(k).value_unchecked(v.unwrap())40 }4142 new_obj.build()43}3044crates/jrsonnet-stdlib/src/operator.rsdiffbeforeafterboth38 x ^ y38 x ^ y39}39}4041#[builtin]42pub fn builtin_xnor(x: bool, y: bool) -> bool {43 x == y44}404541#[builtin]46#[builtin]42pub fn builtin_format(str: IStr, vals: Val) -> Result<String> {47pub fn builtin_format(str: IStr, vals: Val) -> Result<String> {crates/jrsonnet-stdlib/src/sort.rsdiffbeforeafterboth1#![allow(non_snake_case)]21use std::cmp::Ordering;3use std::cmp::Ordering;249 Thunk, Val,11 Thunk, Val,10};12};11use jrsonnet_gcmodule::Cc;13use jrsonnet_gcmodule::Cc;14use jrsonnet_parser::BinaryOpType;1516use crate::eval_on_empty;121713#[derive(Copy, Clone)]18#[derive(Copy, Clone)]14enum SortKeyType {19enum SortKeyType {64 let mut err = None;69 let mut err = None;65 // evaluate_compare_op will never return equal on types, which are different from70 // evaluate_compare_op will never return equal on types, which are different from66 // jsonnet perspective71 // jsonnet perspective67 values.sort_unstable_by(|a, b| {72 values.sort_unstable_by(|a, b| match evaluate_compare_op(a, b, BinaryOpType::Lt) {68 match evaluate_compare_op(a, b, jrsonnet_parser::BinaryOpType::Lt) {69 Ok(ord) => ord,73 Ok(ord) => ord,70 Err(e) if err.is_none() => {74 Err(e) if err.is_none() => {71 let _ = err.insert(e);75 let _ = err.insert(e);72 Ordering::Equal76 Ordering::Equal73 }77 }74 Err(_) => Ordering::Equal,78 Err(_) => Ordering::Equal,75 }79 });76 });77 if let Some(err) = err {80 if let Some(err) = err {78 return Err(err);81 return Err(err);79 }82 }105 let mut err = None;108 let mut err = None;106 // evaluate_compare_op will never return equal on types, which are different from109 // evaluate_compare_op will never return equal on types, which are different from107 // jsonnet perspective110 // jsonnet perspective108 vk.sort_by(|(_a, ak), (_b, bk)| {111 vk.sort_by(109 match evaluate_compare_op(ak, bk, jrsonnet_parser::BinaryOpType::Lt) {112 |(_a, ak), (_b, bk)| match evaluate_compare_op(ak, bk, BinaryOpType::Lt) {110 Ok(ord) => ord,113 Ok(ord) => ord,111 Err(e) if err.is_none() => {114 Err(e) if err.is_none() => {112 let _ = err.insert(e);115 let _ = err.insert(e);113 Ordering::Equal116 Ordering::Equal114 }117 }115 Err(_) => Ordering::Equal,118 Err(_) => Ordering::Equal,116 }119 },117 });120 );118 if let Some(err) = err {121 if let Some(err) = err {119 return Err(err);122 return Err(err);120 }123 }138}141}139142140#[builtin]143#[builtin]141#[allow(non_snake_case)]142pub fn builtin_sort(arr: ArrValue, keyF: Option<FuncVal>) -> Result<ArrValue> {144pub fn builtin_sort(arr: ArrValue, keyF: Option<FuncVal>) -> Result<ArrValue> {143 super::sort::sort(arr, keyF.unwrap_or_else(FuncVal::identity))145 super::sort::sort(arr, keyF.unwrap_or_else(FuncVal::identity))144}146}208}210}211212213fn eval_keyf(val: Val, key_f: &Option<FuncVal>) -> Result<Val> {214 if let Some(key_f) = key_f {215 key_f.evaluate_simple(&(val,), false)216 } else {217 Ok(val)218 }219}220221fn array_top1(arr: ArrValue, key_f: Option<FuncVal>, ordering: Ordering) -> Result<Val> {222 let mut iter = arr.iter();223 let mut min = iter.next().expect("not empty")?;224 let mut min_key = eval_keyf(min.clone(), &key_f)?;225 for item in iter {226 let cur = item?;227 let cur_key = eval_keyf(cur.clone(), &key_f)?;228 if evaluate_compare_op(&cur_key, &min_key, BinaryOpType::Lt)? == ordering {229 min = cur;230 min_key = cur_key;231 }232 }233 Ok(min)234}235236#[builtin]237pub fn builtin_min_array(238 arr: ArrValue,239 keyF: Option<FuncVal>,240 onEmpty: Option<Thunk<Val>>,241) -> Result<Val> {242 if arr.is_empty() {243 return eval_on_empty(onEmpty);244 }245 array_top1(arr, keyF, Ordering::Less)246}247#[builtin]248pub fn builtin_max_array(249 arr: ArrValue,250 keyF: Option<FuncVal>,251 onEmpty: Option<Thunk<Val>>,252) -> Result<Val> {253 if arr.is_empty() {254 return eval_on_empty(onEmpty);255 }256 array_top1(arr, keyF, Ordering::Greater)257}209258crates/jrsonnet-stdlib/src/std.jsonnetdiffbeforeafterboth274 objectValuesAll(o)::274 objectValuesAll(o)::275 [o[k] for k in std.objectFieldsAll(o)],275 [o[k] for k in std.objectFieldsAll(o)],276276277 objectKeysValues(o)::278 [{ key: k, value: o[k] } for k in std.objectFields(o)],279 280 objectKeysValuesAll(o)::281 [{ key: k, value: o[k] } for k in std.objectFieldsAll(o)],282277 resolvePath(f, r)::283 resolvePath(f, r)::278 local arr = std.split(f, '/');284 local arr = std.split(f, '/');279 std.join('/', std.makeArray(std.length(arr) - 1, function(i) arr[i]) + [r]),285 std.join('/', std.makeArray(std.length(arr) - 1, function(i) arr[i]) + [r]),crates/jrsonnet-stdlib/src/strings.rsdiffbeforeafterboth27 str.replace(&from as &str, &to as &str)27 str.replace(&from as &str, &to as &str)28}28}2930#[builtin]31pub fn builtin_is_empty(str: String) -> bool {32 str.is_empty()33}3435#[builtin]36pub fn builtin_equals_ignore_case(x: String, y: String) -> bool {37 x.to_ascii_lowercase() == y.to_ascii_lowercase()38}293930#[builtin]40#[builtin]31pub fn builtin_splitlimit(str: IStr, c: IStr, maxsplits: Either![usize, M1]) -> ArrValue {41pub fn builtin_splitlimit(str: IStr, c: IStr, maxsplits: Either![usize, M1]) -> ArrValue {