小编Tom*_*udy的帖子

在elm中设置页面标题?

如何在程序启动时在elm中设置页面标题?

我在文档中找到了这个:(http://elm-lang.org/docs/syntax)

Elm有一些内置的端口处理程序,可以自动采取一些必要的操作:

title 设置页面标题,忽略空字符串

但是我仍然无法完全绕过端口,也无法找到正在使用的特定端口的任何示例.所以我不知道,例如,甚至端口的类型签名.

我知道我可以通过制作我自己的index.html并将elm程序嵌入其中来做到这一点,但我想在榆树本身中解决这个问题,即使没有其他原因也要了解它是如何完成的.(并希望了解有关端口的信息......)

elm

11
推荐指数
3
解决办法
2025
查看次数

在Mac上创建静态链接的Haskell库

我正在使用:Mac OS X 10.10,GHC 7.10.2(Haskell Platform),Cabal 1.22

我正在尝试在Haskell中创建一个静态链接库。目的是提供一个具有C兼容ABI的库,以供跨平台和跨语言使用。预计该库的所有使用者都不能在Haskell中实现,因此与C兼容的ABI至关重要,因为易于分布所得库。

我的问题是,所有FFI教程/示例都没有使用第三方模块,甚至几乎没有提及cabal。这两个都是我的先决条件。当我遵循一个简单的FFI教程时,它可以工作,但是一旦我放入了一个第三方模块,它对我来说就失败了。

我创建了一个非常简单的示例,详细说明了我的问题,网址为:https : //github.com/tomkludy/ffihell

如果使用构建库cabal configure;cabal build,则将在dist\build名为的库中找到libHSffihell-0.1.0.0-70CjWiqse6C2Al3vL5a4k7(后跟.a,_p.a和-ghc7.10.2.dylib)。

问题1:库的每次命名都不同。每次构建库时,如何使名称相同?

如果然后通过修改build_c.sh以指向正确的库名称来构建使用该程序的C程序(tryit.c),它将起作用:

> ghc tryit.c -Idist/build -Ldist/build -lHSffihell-0.1.0.0-70CjWiqse6C2Al3vL5a4k7 -no-hs-main -o tryit
> ./tryit
foo 4: 5
Run Code Online (Sandbox Code Playgroud)

但是,如果您在Foo.hs中取消注释这些行,则导致其拉入Data.Text库:

{-# LANGUAGE ForeignFunctionInterface, OverloadedStrings #-}
module Foo where

import qualified Data.Text as T

foreign export ccall foo :: Int -> IO Int

foo :: Int -> IO Int
foo n = return $ n + 1 …
Run Code Online (Sandbox Code Playgroud)

macos static haskell ffi ghc

5
推荐指数
1
解决办法
203
查看次数

我可以在 Rust 中创建一个包含字符串和该字符串切片的结构吗?

我正在尝试创建一个结构,它接受一个输入字符串(并取得它的所有权),进行一些计算,然后返回一个包含该字符串和一些预先计算的字符串切片的结构。

就像是:

pub async fn read_file<'a>(path: &Path) -> Result<MyString<'a>> {
    let contents = tokio::fs::read_to_string(path).await?;
    let slice = costly_search(&contents);
    Ok(MyString::new(contents, slice))
}

pub struct MyString<'a>
{
    slice: &'a str,
    string: String,
}

impl<'a> MyString<'a> {
    pub fn new(string: String, slice: &'a str) -> MyString<'a> {
        MyString { string, slice }
    }
    pub fn get_slice(&self) -> &str {
        self.slice
    }
}
Run Code Online (Sandbox Code Playgroud)

文件contents可能很大,所以我不想复制它。该函数costly_search可能需要一些时间来计算,但总是返回其输入的一部分;该切片也很大,所以我不想将该切片复制到新字符串中。这也被简化了;我将在结构中有多个输入字符串切片,消费者可以传递整个内容并根据需要使用预先计算的切片。

当我尝试编译它时,我得到:

`contents` does not live long enough

borrowed value does not live long enough
utils.rs(43, 31): …
Run Code Online (Sandbox Code Playgroud)

rust borrow-checker borrowing

5
推荐指数
1
解决办法
164
查看次数

标签 统计

borrow-checker ×1

borrowing ×1

elm ×1

ffi ×1

ghc ×1

haskell ×1

macos ×1

rust ×1

static ×1