NV5CPVRHLFYYLMY6UWQZFFH73HCBQLOVOK5UZ7WH72DVCM6JJ6JQC D4SBRY6KHEAMGUEVWSUYHNCRYXCOC5JJ3N3DQ47ZXOXQGT73VERAC X7GJK2QD5LRK3KDE2YMCNDTASB3TAK6VAHSCY3SOZBHAYDQ5KJ7QC LE34RHBBMJT2BWLU5BHZJSHNMHQWX66QQNM2MAEDWEARCWOCSYLAC IFYNLE5HO7JIZ5LJYNQ7ZQGK7C7RWPT54DFMCDHPT4CEGCZN7ACQC 4KITFMYLV5UANNXOQ7D3RG4IHJEJW6U7NYKOTGUOIHJDBGGQZLMQC YYJ76Q7V6G7FHSNZ25MU3ZZY5KGXIODBHLWOZUGB4FIKL7PUCNAAC let email_body = rusoto_ses::Body {text: Some(rusoto_ses::Content {data: format!(include_str!("discussions/new_change_email"),author = self.user,disc = n,name = name,message = header.message,owner = self.owner,repo = self.repo,host = self.config.host,hash = hash,login = &login,),charset: Some(EMAIL_CHARSET.to_string()),}),html: Some(rusoto_ses::Content {data: body_html,charset: Some(EMAIL_CHARSET.to_string()),}),
let email_body = crate::email::Body {plain: format!(include_str!("discussions/new_change_email"),author = self.user,disc = n,name = name,message = header.message,owner = self.owner,repo = self.repo,host = self.config.host,hash = hash,login = &login,),html: body_html,
subject: String,body: rusoto_ses::Body,address: String,) -> Result<(), rusoto_core::RusotoError<rusoto_ses::SendEmailError>> {if let Some(config_email) = config.email.clone() {let subject = rusoto_ses::Content {data: subject,charset: Some("utf-8".to_string()),};debug!("sending an email to {:?}", address);let client = rusoto_core::request::HttpClient::new().unwrap();let email = rusoto_ses::SendEmailRequest {message: rusoto_ses::Message { body, subject },source: config.email_source.clone(),destination: rusoto_ses::Destination {to_addresses: Some(vec![address]),..rusoto_ses::Destination::default()},..rusoto_ses::SendEmailRequest::default()};use rusoto_ses::Ses;let result =rusoto_ses::SesClient::new_with(client, config_email, config.aws_ses_zone.clone()).send_email(email).await?;debug!("result = {:?}", result);
subject: &str,body: Body,address: &str,) -> Result<(), Error> {if let Some(ref mailer) = config.email {let email = Message::builder().from(config.email_source.parse()?).to(address.parse()?).subject(subject).multipart(MultiPart::alternative_plain_html(body.plain, body.html))?;match mailer.send(&email) {Ok(_) => println!("Email sent successfully!"),Err(e) => panic!("Could not send email: {e:?}"),}
}#[derive(Default, Clone, Serialize, Deserialize)]pub struct PostgresConfig {pub host: String,pub port: Option<u16>,pub readonly_port: Option<u16>,pub local_port: Option<u16>,pub user: String,pub password: String,pub db: String,pub log: Option<String>,pub ca_file: Option<String>,#[serde(default = "bool_true")]pub use_tls: bool,}fn bool_true() -> bool {true
email: email(),email_source: config_file.email.source.clone(),aws_ses_zone: config_file.email.region.parse().unwrap(),
email: email(&config_file),email_source: config_file.as_ref().map(|x| x.source.clone()).unwrap_or(String::new()),
fn email() -> Option<rusoto_credential::StaticProvider> {Some(rusoto_credential::StaticProvider::new(std::env::var("aws_access_key_id").ok()?,std::env::var("aws_access_key").ok()?,None,None,))
fn email(config: &config_file::ConfigFile) -> Option<lettre::SmtpTransport> {if let Some(ref email) = config.email {let creds = lettre::transport::smtp::authentication::Credentials::new(email.user.clone(),std::env::var("SMTP_PASSWORD").unwrap(),);Some(lettre::SmtpTransport::relay(&email.server).unwrap().credentials(creds).build(),)} else {None}
"base64 0.13.1" = rec {crateName = "base64";version = "0.13.1";edition = "2018";sha256 = "1s494mqmzjb766fy1kqlccgfg2sdcjb6hzbvzqv2jw65fdi5h6wy";authors = ["Alice Maz <alice@alicemaz.com>""Marshall Pierce <marshall@mpierce.org>"];features = {"default" = [ "std" ];};resolvedDefaultFeatures = [ "default" "std" ];};
}];};"dirs-next" = rec {crateName = "dirs-next";version = "2.0.0";edition = "2018";sha256 = "1q9kr151h9681wwp6is18750ssghz6j9j7qm7qi1ngcwy7mzi35r";libName = "dirs_next";authors = ["The @xdg-rs members"];dependencies = [{name = "cfg-if";packageId = "cfg-if";
"dirs-sys-next" = rec {crateName = "dirs-sys-next";version = "0.1.2";edition = "2018";sha256 = "0kavhavdxv4phzj4l0psvh55hszwnr0rcz8sxbvx20pyqi2a3gaf";libName = "dirs_sys_next";authors = ["The @xdg-rs members"];dependencies = [{name = "libc";packageId = "libc";target = { target, features }: (target."unix" or false);}{name = "redox_users";packageId = "redox_users";usesDefaultFeatures = false;target = { target, features }: ("redox" == target."os" or null);}{name = "winapi";packageId = "winapi";target = { target, features }: (target."windows" or false);features = [ "knownfolders" "objbase" "shlobj" "winbase" "winerror" ];}];};
};"email-encoding" = rec {crateName = "email-encoding";version = "0.4.1";edition = "2021";sha256 = "1dkhcqmhgc25m437fzxhkvhd135yc4xd9pzpsc77i7lv9m8fd64j";libName = "email_encoding";dependencies = [{name = "base64";packageId = "base64 0.22.1";usesDefaultFeatures = false;}{name = "memchr";packageId = "memchr";usesDefaultFeatures = false;}];features = {"default" = [ "std" ];"std" = [ "base64/std" "memchr/std" ];};resolvedDefaultFeatures = [ "default" "std" ];};"email_address" = rec {crateName = "email_address";version = "0.2.9";edition = "2018";sha256 = "0jf4v3npa524c7npy7w3jl0a6gng26f51a4bgzs3jqna12dz2yg0";authors = ["Simon Johnston <johnstonskj@gmail.com>"];features = {"default" = [ "serde_support" ];"serde" = [ "dep:serde" ];"serde_support" = [ "serde" ];};
};"h2 0.3.27" = rec {crateName = "h2";version = "0.3.27";edition = "2018";sha256 = "0b92141hilij015av6i5ziw9xfx4py3lbjy17yc35z5ih01sbv0b";authors = ["Carl Lerche <me@carllerche.com>""Sean McArthur <sean@seanmonstar.com>"];dependencies = [{name = "bytes";packageId = "bytes";}{name = "fnv";packageId = "fnv";}{name = "futures-core";packageId = "futures-core";usesDefaultFeatures = false;}{name = "futures-sink";packageId = "futures-sink";usesDefaultFeatures = false;}{name = "futures-util";packageId = "futures-util";usesDefaultFeatures = false;}{name = "http";packageId = "http 0.2.12";}{name = "indexmap";packageId = "indexmap";features = [ "std" ];}{name = "slab";packageId = "slab";}{name = "tokio";packageId = "tokio";features = [ "io-util" ];}{name = "tokio-util";packageId = "tokio-util";features = [ "codec" "io" ];}{name = "tracing";packageId = "tracing";usesDefaultFeatures = false;features = [ "std" ];}];devDependencies = [{name = "tokio";packageId = "tokio";features = [ "rt-multi-thread" "macros" "sync" "net" ];}];features = {};
};};"hostname" = rec {crateName = "hostname";version = "0.4.2";edition = "2021";sha256 = "1g8cfg0a1v8y5a0zkncbns8hh24amjgskl39cc583wxfawsslyk1";dependencies = [{name = "cfg-if";packageId = "cfg-if";}{name = "libc";packageId = "libc";target = { target, features }: ((target."unix" or false) || ("redox" == target."os" or null));}{name = "windows-link";packageId = "windows-link";target = { target, features }: ("windows" == target."os" or null);}];features = {
};"http 0.2.12" = rec {crateName = "http";version = "0.2.12";edition = "2018";sha256 = "1w81s4bcbmcj9bjp7mllm8jlz6b31wzvirz8bgpzbqkpwmbvn730";authors = ["Alex Crichton <alex@alexcrichton.com>""Carl Lerche <me@carllerche.com>""Sean McArthur <sean@seanmonstar.com>"];dependencies = [{name = "bytes";packageId = "bytes";}{name = "fnv";packageId = "fnv";}{name = "itoa";packageId = "itoa";}];
};"http-body 0.4.6" = rec {crateName = "http-body";version = "0.4.6";edition = "2018";sha256 = "1lmyjfk6bqk6k9gkn1dxq770sb78pqbqshga241hr5p995bb5skw";libName = "http_body";authors = ["Carl Lerche <me@carllerche.com>""Lucio Franco <luciofranco14@gmail.com>""Sean McArthur <sean@seanmonstar.com>"];dependencies = [{name = "bytes";packageId = "bytes";}{name = "http";packageId = "http 0.2.12";}{name = "pin-project-lite";packageId = "pin-project-lite";}];
"hyper 0.14.32" = rec {crateName = "hyper";version = "0.14.32";edition = "2018";sha256 = "1rvcb0smz8q1i0y6p7rwxr02x5sclfg2hhxf3g0774zczn0cgps1";authors = ["Sean McArthur <sean@seanmonstar.com>"];dependencies = [{name = "bytes";packageId = "bytes";}{name = "futures-channel";packageId = "futures-channel";}{name = "futures-core";packageId = "futures-core";usesDefaultFeatures = false;}{name = "futures-util";packageId = "futures-util";usesDefaultFeatures = false;}{name = "h2";packageId = "h2 0.3.27";optional = true;}{name = "http";packageId = "http 0.2.12";}{name = "http-body";packageId = "http-body 0.4.6";}{name = "httparse";packageId = "httparse";}{name = "httpdate";packageId = "httpdate";}{name = "itoa";packageId = "itoa";}{name = "pin-project-lite";packageId = "pin-project-lite";}{name = "socket2";packageId = "socket2 0.5.10";optional = true;features = [ "all" ];}{name = "tokio";packageId = "tokio";features = [ "sync" ];}{name = "tower-service";packageId = "tower-service";}{name = "tracing";packageId = "tracing";usesDefaultFeatures = false;features = [ "std" ];}{name = "want";packageId = "want";}];devDependencies = [{name = "futures-util";packageId = "futures-util";usesDefaultFeatures = false;features = [ "alloc" ];}{name = "tokio";packageId = "tokio";features = [ "fs" "macros" "io-std" "io-util" "rt" "rt-multi-thread" "sync" "time" "test-util" ];}];features = {"ffi" = [ "libc" ];"full" = [ "client" "http1" "http2" "server" "stream" "runtime" ];"h2" = [ "dep:h2" ];"http2" = [ "h2" ];"libc" = [ "dep:libc" ];"runtime" = [ "tcp" "tokio/rt" "tokio/time" ];"socket2" = [ "dep:socket2" ];"tcp" = [ "socket2" "tokio/net" "tokio/rt" "tokio/time" ];};resolvedDefaultFeatures = [ "client" "default" "h2" "http1" "http2" "socket2" "stream" "tcp" ];};"hyper 1.8.1" = rec {
"hyper" = rec {
version = "0.5.0";edition = "2018";sha256 = "01crgy13102iagakf6q4mb75dprzr7ps1gj0l5hxm1cvm7gks66n";libName = "hyper_tls";authors = ["Sean McArthur <sean@seanmonstar.com>"];dependencies = [{name = "bytes";packageId = "bytes";}{name = "hyper";packageId = "hyper 0.14.32";usesDefaultFeatures = false;features = [ "tcp" "client" ];}{name = "native-tls";packageId = "native-tls";}{name = "tokio";packageId = "tokio";}{name = "tokio-native-tls";packageId = "tokio-native-tls";}];devDependencies = [{name = "hyper";packageId = "hyper 0.14.32";usesDefaultFeatures = false;features = [ "http1" ];}{name = "tokio";packageId = "tokio";features = [ "io-std" "macros" "io-util" ];}];features = {"vendored" = [ "native-tls/vendored" ];};};"hyper-tls 0.6.0" = rec {crateName = "hyper-tls";
"lettre" = rec {crateName = "lettre";version = "0.11.22";edition = "2024";sha256 = "0j9kbgx98k4zn2hvd38jdsl8s5snmn55gjrrs0r674nbyqbmd9hd";authors = ["Alexis Mousset <contact@amousset.me>""Paolo Barbolini <paolo@paolo565.org>"];dependencies = [{name = "base64";packageId = "base64 0.22.1";optional = true;}{name = "email-encoding";packageId = "email-encoding";optional = true;}{name = "email_address";packageId = "email_address";usesDefaultFeatures = false;}{name = "fastrand";packageId = "fastrand";optional = true;}{name = "futures-util";packageId = "futures-util";optional = true;usesDefaultFeatures = false;features = [ "io" ];}{name = "hostname";packageId = "hostname";optional = true;}{name = "httpdate";packageId = "httpdate";optional = true;}{name = "idna";packageId = "idna";}{name = "mime";packageId = "mime";optional = true;}{name = "native-tls";packageId = "native-tls";optional = true;}{name = "nom";packageId = "nom 8.0.0";}{name = "percent-encoding";packageId = "percent-encoding";optional = true;}{name = "quoted_printable";packageId = "quoted_printable";optional = true;}{name = "socket2";packageId = "socket2";optional = true;}{name = "tokio";packageId = "tokio";rename = "tokio1_crate";optional = true;}{name = "url";packageId = "url";optional = true;}];devDependencies = [{name = "tokio";packageId = "tokio";rename = "tokio1_crate";features = [ "macros" "rt-multi-thread" ];}];features = {"async-std1" = [ "dep:async-std" "dep:async-trait" "dep:futures-io" "dep:futures-util" ];"async-std1-rustls" = [ "async-std1" "rustls" "dep:futures-rustls" ];"async-std1-rustls-tls" = [ "async-std1-rustls" "rustls-tls" ];"aws-lc-rs" = [ "rustls?/aws-lc-rs" ];"boring-tls" = [ "dep:boring" ];"builder" = [ "dep:httpdate" "dep:mime" "dep:fastrand" "dep:quoted_printable" "dep:email-encoding" ];"default" = [ "smtp-transport" "pool" "native-tls" "hostname" "builder" ];"dkim" = [ "dep:base64" "dep:sha2" "dep:rsa" "dep:ed25519-dalek" ];"file-transport" = [ "dep:uuid" "tokio1_crate?/fs" "tokio1_crate?/io-util" ];"file-transport-envelope" = [ "serde" "dep:serde_json" "file-transport" ];"fips" = [ "aws-lc-rs" "rustls?/fips" ];"hostname" = [ "dep:hostname" ];"mime03" = [ "dep:mime" ];"native-tls" = [ "dep:native-tls" ];"pool" = [ "dep:futures-util" ];"ring" = [ "rustls?/ring" ];"rustls" = [ "dep:rustls" ];"rustls-native-certs" = [ "dep:rustls-native-certs" ];"rustls-no-provider" = [ "rustls" ];"rustls-platform-verifier" = [ "dep:rustls-platform-verifier" ];"rustls-tls" = [ "webpki-roots" "rustls" "ring" ];"sendmail-transport" = [ "tokio1_crate?/process" "tokio1_crate?/io-util" "async-std?/unstable" ];"serde" = [ "dep:serde" ];"smtp-transport" = [ "dep:base64" "dep:socket2" "dep:url" "dep:percent-encoding" "tokio1_crate?/rt" "tokio1_crate?/time" "tokio1_crate?/net" ];"tokio1" = [ "dep:tokio1_crate" "dep:async-trait" "dep:futures-io" "dep:futures-util" ];"tokio1-boring-tls" = [ "tokio1" "boring-tls" "dep:tokio1_boring" ];"tokio1-native-tls" = [ "tokio1" "native-tls" "dep:tokio1_native_tls_crate" ];"tokio1-rustls" = [ "tokio1" "rustls" "dep:tokio1_rustls" ];"tokio1-rustls-tls" = [ "tokio1-rustls" "rustls-tls" ];"tracing" = [ "dep:tracing" ];"web" = [ "dep:web-time" ];"webpki-roots" = [ "dep:webpki-roots" ];};resolvedDefaultFeatures = [ "builder" "default" "hostname" "native-tls" "pool" "smtp-transport" ];};
"std" = [ "digest/std" ];};resolvedDefaultFeatures = [ "default" "std" ];};"md-5 0.9.1" = rec {crateName = "md-5";version = "0.9.1";edition = "2018";sha256 = "059ajjacz1q3cms7vl6cvhdqs4qdw2nnwj9dq99ryzv0p6djfnkv";libName = "md5";authors = ["RustCrypto Developers"];dependencies = [{name = "block-buffer";packageId = "block-buffer 0.9.0";}{name = "digest";packageId = "digest 0.9.0";}{name = "opaque-debug";packageId = "opaque-debug";}];devDependencies = [{name = "digest";packageId = "digest 0.9.0";features = [ "dev" ];}];features = {"asm" = [ "md5-asm" ];"default" = [ "std" ];"md5-asm" = [ "dep:md5-asm" ];
};"quoted_printable" = rec {crateName = "quoted_printable";version = "0.5.2";edition = "2018";sha256 = "0wm9xr8qajngy0lvsf00hy51s6x53w73qzpb0yj2l4lscn2hb3j7";authors = ["Kartikaya Gupta <kats@seldon.staktrace.com>"];features = {"default" = [ "std" ];};resolvedDefaultFeatures = [ "default" "std" ];
"rusoto_core" = rec {crateName = "rusoto_core";version = "0.48.0";edition = "2018";sha256 = "18ig9x4n68cgfvhzkyhl9w2qlhk945xczbb9c8r52dd79ss0vcqx";authors = ["Anthony DiMarco <ocramida@gmail.com>""Jimmy Cuadra <jimmy@jimmycuadra.com>""Matthew Mayer <matthewkmayer@gmail.com>""Nikita Pekin <contact@nikitapek.in>"];dependencies = [{name = "async-trait";packageId = "async-trait";}{name = "base64";packageId = "base64 0.13.1";}{name = "bytes";packageId = "bytes";}{name = "crc32fast";packageId = "crc32fast";}{name = "futures";packageId = "futures";}{name = "http";packageId = "http 0.2.12";}{name = "hyper";packageId = "hyper 0.14.32";features = [ "client" "http1" "http2" "tcp" ];}{name = "hyper-tls";packageId = "hyper-tls 0.5.0";optional = true;}{name = "lazy_static";packageId = "lazy_static";}{name = "log";packageId = "log";}{name = "rusoto_credential";packageId = "rusoto_credential";}{name = "rusoto_signature";packageId = "rusoto_signature";}{name = "serde";packageId = "serde";features = [ "derive" ];}{name = "serde_json";packageId = "serde_json";}{name = "tokio";packageId = "tokio";features = [ "time" "io-util" ];}{name = "xml-rs";packageId = "xml-rs";}];buildDependencies = [{name = "rustc_version";packageId = "rustc_version";}];devDependencies = [{name = "serde_json";packageId = "serde_json";}{name = "tokio";packageId = "tokio";features = [ "macros" ];}];features = {"default" = [ "native-tls" ];"encoding" = [ "flate2" ];"flate2" = [ "dep:flate2" ];"hyper-rustls" = [ "dep:hyper-rustls" ];"hyper-tls" = [ "dep:hyper-tls" ];"native-tls" = [ "hyper-tls" ];"nightly-testing" = [ "rusoto_credential/nightly-testing" ];"rustls" = [ "hyper-rustls/native-tokio" ];"rustls-webpki" = [ "hyper-rustls/webpki-tokio" ];};resolvedDefaultFeatures = [ "default" "hyper-tls" "native-tls" ];};"rusoto_credential" = rec {crateName = "rusoto_credential";version = "0.48.0";edition = "2018";sha256 = "019dq3aq6hnfg4xvxdfsnrba08dwvciz0km4nr3n1basvc9nq2pf";authors = ["Anthony DiMarco <ocramida@gmail.com>""Jimmy Cuadra <jimmy@jimmycuadra.com>""Matthew Mayer <matthewkmayer@gmail.com>""Nikita Pekin <contact@nikitapek.in>"];dependencies = [{name = "async-trait";packageId = "async-trait";}{name = "chrono";packageId = "chrono";usesDefaultFeatures = false;features = [ "clock" "serde" ];}{name = "dirs-next";packageId = "dirs-next";}{name = "futures";packageId = "futures";}{name = "hyper";packageId = "hyper 0.14.32";features = [ "client" "http1" "tcp" "stream" ];}{name = "serde";packageId = "serde";features = [ "derive" ];}{name = "serde_json";packageId = "serde_json";}{name = "shlex";packageId = "shlex";}{name = "tokio";packageId = "tokio";features = [ "process" "sync" "time" ];}{name = "zeroize";packageId = "zeroize";}];devDependencies = [{name = "tokio";packageId = "tokio";features = [ "macros" "rt-multi-thread" ];}];features = {};};"rusoto_ses" = rec {crateName = "rusoto_ses";version = "0.48.0";edition = "2018";sha256 = "1k86fiyxip6mjkh7zbbc49rdbqy2qqvi52hr8vs3zfgar0d60rf3";authors = ["Anthony DiMarco <ocramida@gmail.com>""Jimmy Cuadra <jimmy@jimmycuadra.com>""Matthew Mayer <matthewkmayer@gmail.com>""Nikita Pekin <contact@nikitapek.in>"];dependencies = [{name = "async-trait";packageId = "async-trait";}{name = "bytes";packageId = "bytes";}{name = "futures";packageId = "futures";}{name = "rusoto_core";packageId = "rusoto_core";usesDefaultFeatures = false;}{name = "serde_urlencoded";packageId = "serde_urlencoded";}{name = "xml-rs";packageId = "xml-rs";}];features = {"default" = [ "native-tls" ];"deserialize_structs" = [ "bytes/serde" "serde" "serde_derive" ];"native-tls" = [ "rusoto_core/native-tls" ];"rustls" = [ "rusoto_core/rustls" ];"serde" = [ "dep:serde" ];"serde_derive" = [ "dep:serde_derive" ];"serialize_structs" = [ "bytes/serde" "serde" "serde_derive" ];};resolvedDefaultFeatures = [ "default" "native-tls" ];};"rusoto_signature" = rec {crateName = "rusoto_signature";version = "0.48.0";edition = "2018";sha256 = "0wjjn3n3a01xxc1kdwqkrbw6zkgc4w8ia6r93s9lfj4b3i4rbbm5";authors = ["Anthony DiMarco <ocramida@gmail.com>""Jimmy Cuadra <jimmy@jimmycuadra.com>""Matthew Mayer <matthewkmayer@gmail.com>""Nikita Pekin <contact@nikitapek.in>"];dependencies = [{name = "base64";packageId = "base64 0.13.1";}{name = "bytes";packageId = "bytes";}{name = "chrono";packageId = "chrono";usesDefaultFeatures = false;features = [ "clock" ];}{name = "digest";packageId = "digest 0.9.0";}{name = "futures";packageId = "futures";}{name = "hex";packageId = "hex";}{name = "hmac";packageId = "hmac 0.11.0";}{name = "http";packageId = "http 0.2.12";}{name = "hyper";packageId = "hyper 0.14.32";features = [ "stream" ];}{name = "log";packageId = "log";}{name = "md-5";packageId = "md-5 0.9.1";}{name = "percent-encoding";packageId = "percent-encoding";}{name = "pin-project-lite";packageId = "pin-project-lite";}{name = "rusoto_credential";packageId = "rusoto_credential";}{name = "serde";packageId = "serde";}{name = "sha2";packageId = "sha2 0.9.9";}{name = "tokio";packageId = "tokio";features = [ "macros" "rt-multi-thread" ];}];buildDependencies = [{name = "rustc_version";packageId = "rustc_version";}];devDependencies = [{name = "tokio";packageId = "tokio";features = [ "io-util" ];}];};
};};"socket2 0.5.10" = rec {crateName = "socket2";version = "0.5.10";edition = "2021";sha256 = "0y067ki5q946w91xlz2sb175pnfazizva6fi3kfp639mxnmpc8z2";authors = ["Alex Crichton <alex@alexcrichton.com>""Thomas de Zeeuw <thomasdezeeuw@gmail.com>"];dependencies = [{name = "libc";packageId = "libc";target = { target, features }: (target."unix" or false);}{name = "windows-sys";packageId = "windows-sys 0.52.0";target = { target, features }: (target."windows" or false);features = [ "Win32_Foundation" "Win32_Networking_WinSock" "Win32_System_IO" "Win32_System_Threading" "Win32_System_WindowsProgramming" ];}];features = {
resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_NetworkManagement" "Win32_NetworkManagement_IpHelper" "Win32_Networking" "Win32_Networking_WinSock" "Win32_System" "Win32_System_IO" "Win32_System_Threading" "Win32_System_WindowsProgramming" "default" ];
resolvedDefaultFeatures = [ "Win32" "Win32_Foundation" "Win32_NetworkManagement" "Win32_NetworkManagement_IpHelper" "Win32_Networking" "Win32_Networking_WinSock" "Win32_System" "Win32_System_Threading" "default" ];
name = "email-encoding"version = "0.4.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "9298e6504d9b9e780ed3f7dfd43a61be8cd0e09eb07f7706a945b0072b6670b6"dependencies = ["base64 0.22.1","memchr",][[package]]name = "email_address"version = "0.2.9"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e079f19b08ca6239f47f8ba8509c11cf3ea30095831f7fed61441475edd8c449"[[package]]
][[package]]name = "h2"version = "0.3.27"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "0beca50380b1fc32983fc1cb4587bfa4bb9e78fc259aad4a0032d2080309222d"dependencies = ["bytes","fnv","futures-core","futures-sink","futures-util","http 0.2.12","indexmap","slab","tokio","tokio-util","tracing",
[[package]]name = "hyper"version = "0.14.32"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "41dfc780fdec9373c01bae43289ea34c972e40ee3c9f6b3c8801a35f35586ce7"dependencies = ["bytes","futures-channel","futures-core","futures-util","h2 0.3.27","http 0.2.12","http-body 0.4.6","httparse","httpdate","itoa","pin-project-lite","socket2 0.5.10","tokio","tower-service","tracing","want",]
][[package]]name = "hyper-tls"version = "0.5.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905"dependencies = ["bytes","hyper 0.14.32","native-tls","tokio","tokio-native-tls",
name = "lettre"version = "0.11.22"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "0da65617f6cb926332d039cb578aad56178da86e128db6a1b09f4c94fa5b3349"dependencies = ["base64 0.22.1","email-encoding","email_address","fastrand","futures-util","hostname","httpdate","idna","mime","native-tls","nom 8.0.0","percent-encoding","quoted_printable","socket2","tokio","url",][[package]]
][[package]]name = "md-5"version = "0.9.1"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"dependencies = ["block-buffer 0.9.0","digest 0.9.0","opaque-debug",
][[package]]name = "rusoto_core"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "1db30db44ea73551326269adcf7a2169428a054f14faf9e1768f2163494f2fa2"dependencies = ["async-trait","base64 0.13.1","bytes","crc32fast","futures","http 0.2.12","hyper 0.14.32","hyper-tls 0.5.0","lazy_static","log","rusoto_credential","rusoto_signature","rustc_version","serde","serde_json","tokio","xml-rs",][[package]]name = "rusoto_credential"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "ee0a6c13db5aad6047b6a44ef023dbbc21a056b6dab5be3b79ce4283d5c02d05"dependencies = ["async-trait","chrono","dirs-next","futures","hyper 0.14.32","serde","serde_json","shlex","tokio","zeroize",][[package]]name = "rusoto_ses"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "c365601ac8eab93ff446198a1237c6c2e3d572226cad7fe094d5dcd87d7406cd"dependencies = ["async-trait","bytes","futures","rusoto_core","serde_urlencoded","xml-rs",][[package]]name = "rusoto_signature"version = "0.48.0"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "a5ae95491c8b4847931e291b151127eccd6ff8ca13f33603eb3d0035ecb05272"dependencies = ["base64 0.13.1","bytes","chrono","digest 0.9.0","futures","hex","hmac 0.11.0","http 0.2.12","hyper 0.14.32","log","md-5 0.9.1","percent-encoding","pin-project-lite","rusoto_credential","rustc_version","serde","sha2 0.9.9","tokio",
version = "0.5.10"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678"dependencies = ["libc","windows-sys 0.52.0",][[package]]name = "socket2"
name = "xml-rs"version = "0.8.28"source = "registry+https://github.com/rust-lang/crates.io-index"checksum = "3ae8337f8a065cfc972643663ea4279e04e7256de865aa66fe25cec5fb912d3f"[[package]]